安卓studio 报错

问题合集

v7无法解析

法一:

import android.support.v4.app.ActivityCompat;无法解析
1、改成import androidx.core.app.ActivityCompat;

import android.support.v7.app.AppCompatActivity;无法解析
1、改成import androidx.appcompat.app.AppCompatActivity;

android.support.v7.widget.RecyclerView无法解析?
1、改成androidx.recyclerview.widget.RecyclerView。
2、把关于android.support.v7.widget.RecyclerView的import都注释掉/删掉。

android.support.v4.view.ViewPager无法解析?
1、改成androidx.viewpager.widget.ViewPager

android.support.v4.view.PagerTitleStrip无法解析?
1、androidx.viewpager.widget.PagerTitleStrip

总之所有的v4,v7无法解析
就把前缀改成androidx,然后把关键词打出来,让软件自动补全。

或者把无法解析的import都删了,然后到下面标红的地方快捷键导入类。

法二:

所有的v7无法解析,有个更好的一本万利的方法:
//https://www.cnblogs.com/sengzhao666/p/10825663.html#:~:text=%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9A%201.%E5%85%88%E6%89%BE%E5%88%B0%E2%80%9C%20project%20structure%20%E2%80%9D%EF%BC%8C%E7%84%B6%E5%90%8E%20app--Dependencies%20%EF%BC%8C%E7%82%B9%E5%87%BB%E5%8F%B3%E4%B8%8A%E8%A7%92%E7%9A%84%E2%80%9C,+%20%E2%80%9D%EF%BC%8C%E5%87%BA%E7%8E%B0%E5%A6%82%E4%B8%8B%E5%9B%BE%E6%89%80%E7%A4%BA%202.%E7%82%B9%E5%87%BB%E2%80%9C%20Library%20dependency%20%E2%80%9D%203.%E5%86%8D%E6%90%9C%E7%B4%A2%E6%A1%86%E4%B8%AD%EF%BC%8C%20%E6%B7%BB%E5%8A%A0%E4%B8%8Acom.android.support:appcompat-v7%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%E3%80%82

即:文件
        --》项目结构
        --》Dependencies
        --》“+”
        --》Library dependency
        --》“com.android.support:appcompat-v7”
        --》search
        --》确定

当然,法二虽然快捷,但是有时候会引发另一个问题(即下面的Manifest merger failed with multiple errors, see logs问题),搞了半小时还没解决。保险点还是法一吧。

 

多个活动在哪里声明?怎么设置第一个出现的活动?

多个活动在哪里声明?怎么设置第一个出现的活动?

在AndroidManifest.xml中设置。

声明活动:
<activity android:name=".活动名字"/>

设置第一个出现的活动
    <activity
            android:exported="true"
            android:name=".活动名称">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

AndroidManifest.xml:63: AAPT: error: resource xml/filepaths (aka com.zp.mall:xml/filepaths)not found

在res下创建一个xml文件夹,在里面创建一个filepaths.xml(这个名字取决于报错信息里面的名字)。内容如下:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">

    <files-path
        name="Pictures"
        path="/" />
    <external-path
        name="files_root"
        path="Android/data/${applicationId}/" />
</paths>

error:Manifest merger failed with multiple errors, see logs

法一:事实证明没有屁用(部分情况下有用)

./gradlew processReleaseManifest --stacktrace或gradlew processReleaseManifest --stacktrace
打印出解决办法

法二:

打开AndroidManifest.xml
下面有“文本”和“Merged Manifest”按钮,点击“Merged Manifest”按钮
在出现的页面中找“ERROR”,再继续百度
(这次出现的问题解决方法:
        在AndroidManifest.xml的<application>中添加下面这两句
         android:appComponentFactory=""
         tools:replace="android:appComponentFactory")

Failed to apply plugin 'com.android.internal.application'.

File --> Settings --> Build,Execution,Deployment --> Build Tools --> Gradle --> Gradle JDK --> 可选择Embedded JDK Version版本(从java8到android11)

Plugin with id 'com.android.application' not found

在build.gradle(app)的最前面加上下面这一段:

buildscript {
    repositories {
        mavenCentral() // or jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'   
    }
}

The specified Gradle installation directory 'xxx' does not exist.

进入gradle下的gradle-wrapper.properties,对distributionUrl进行修改,改成本地的gradle.zip包地址。

注:地址寻找方法:搜索“gradle-“就会出现很多版本的gradle.zip。如“gradle-7.3.3-bin.zip”,进入文件夹,选所有包里版本最新的一个。复制地址。

改完后的地址:(注意地址前面要加【file:/】,)

distributionUrl=file:/C:/Users/Administrator/.gradle/wrapper/dists/gradle-7.3.3-bin/6a41zxkdtcxs8rphpq6y0069z/gradle-7.3.3-bin.zip

cvc-complex-type.2.4.a: ��������Ԫ�� 'base-e

solve

Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by build file 'app\build.gradle' 

1,将setting.gradle文件的该配置注释掉:

//dependencyResolutionManagement {
//    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
//    repositories {
//        google()
//        mavenCentral()
//        jcenter() // Warning: this repository is going to shut down soon
//        maven { url 'https://jitpack.io' }
//    }
//}

2,在根目录下的build.gradle文件中增加如下配置:

allprojects {
    repositories {
        google()
        mavenCentral()
//        jcenter() // Warning: this repository is going to shut down soon
    }
}

3,然后点击按钮“sync project with gradle files”即可正常

setContentView(R.layout.activity_main);崩溃

一切良好,没有任何报错,但是运行app会黑屏(真机闪退);

调试发现是setContentView这一句错误。

解决方案:翻所有的layout,总有一个爆红。问题就在这。

setContentView报的错,没有一个layout是无辜的。

WhorlView问题

这个包简直就是无语。在导入依赖的时候看别人都是用下面语句:

    implementation 'com.tt:whorlviewlibrary:1.0.2'
    或
    implementation 'com.example.whorlviewlibrary.WhorlView'

我就是不行,资料也少。最后一番尝试解决办法为:

WhorlView包这个链接里面把这个包下载下来。然后复制entry到你项目的一级文件夹里(即跟.gradle是同一个文件夹),复制tt到[src/main/java/com]下面的文件夹(即跟example是并列文件夹)。不用管依赖,然后就可以了。

 

android:exported needs to be explicitly specified for <activity>

法一:打开清单文件,在有filter的activity中加入语句android:exported="true"

        <activity android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

法二:打开app的build.gradle,将compileSdktargetSdk的版本改为30。(如果清单文件中也有sdk,也改为30)

 

一切gradle的错误

这种坑踩得真的不爽啊。gradle和插件(plugs)是要配套的。所以之前一直都是两个单独调,下了整个晚上,下了几百个版本也没用。

版本对应如下:

插件版本 所需的最低 Gradle 版本
8.0 8.0
7.4 7.5
7.3 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
Plugin version Required Gradle version
1.0.0 - 1.1.3 2.2.1 - 2.3
1.2.0 - 1.3.1 2.2.1 - 2.9
1.5.0 2.2.1 - 2.13
2.0.0 - 2.1.2 2.10 - 2.13
2.1.3 - 2.2.3 2.14.1+
1.5.0 2.2.1 - 2.13
2.3.0+ 3.3+
3.0.0(alpha1-6) 4.1

首先:gradle在哪里设置:

在项目的gradle.properties里面

distributionPath=wrapper/dists
distributionBase=GRADLE_USER_HOME
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

其次,插件在哪里设置:

在项目的build.gradle里面

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
    }

其他问题,比如需要在build.gradle里面的两个repositorise添加geogle(),但是其实geogle()有时候也不行,还是国内镜像网站nb。总的搞好是这样:

buildscript {
    repositories {
        maven() {
            url 'https://maven.aliyun.com/repository/jcenter'
        }
        maven(){
            url 'https://maven.aliyun.com/repository/google'
        }
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        maven {
            url 'https://maven.aliyun.com/repository/mapr-public'
        }
        maven { url 'https://maven.google.com/'}
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven() {
            url 'https://maven.aliyun.com/repository/jcenter'
        }
        maven(){
            url 'https://maven.aliyun.com/repository/google'
        }
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        maven {
            url 'https://maven.aliyun.com/repository/mapr-public'
        }
        maven { url 'https://maven.google.com/'}
        jcenter()
    }
}

再还有说gradle有问题的就去“文件”--“项目结构”--“Project”里面把gradle和插件版本改了。因为上面是在代码里面改,光这样还不行,在项目结构里还得来一遍。版本跟上面的一样就行,比如:

libs的问题

compile fileTree(dir: 'libs', include: ['*.jar'])  implementation fileTree(dir: 'libs', include: ['*.jar'])
compile  api
testCompile  testImplementation
debugCompile  debugImplementation
releaseCompile  releaseImplementation
provided  compileOnly

Plugin [id: ‘com.android.application‘, version: ‘7.x.x‘, apply: false] was not found i...

https://www.jianshu.com/p/8fdf1e6ce444

链接2

Could not get unknown property ‘versions‘ for object of type com.android.build.gradle.AppExtension

https://blog.csdn.net/shaoyezhangliwei/article/details/100516775

Error resolving plugin [id: 'org.jetbrains.kotlin.plugin.serialization', version: '1.6.21']

链接1

dcendents:android-maven-gradle-plugin版本对应

链接1

依赖导入失败

一般的依赖导入失败不会直接报错,表现一般为:明明在build.gradle正确引入依赖,在activity中仍然爆红,"无法解析符号xxx",在构建中你就能看到有警告,"Failed to resolve: "。

解决方法:(以下涉及添加代码都是在setting.gradle中操作)

对于github的依赖导入失败:

maven { url 'https://jitpack.io' }

如果github的依赖还是无法导入,或者aliyun的依赖无法导入,可以尝试添加以下:

maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }

 如果还是无法导入依赖,那么可以到maven网站下载jar包,放入lib中

如果连jar包到找不到,那么将github的仓库地址填入,比如我的bmob-sdk一直导入失败,那么:

maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }

 

posted @ 2022-11-25 11:32  fw_48925  阅读(1250)  评论(0)    收藏  举报