studio 错误汇总以及解决办法

问题1.

Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

意思是“com.android.support:support-annotations”依赖冲突了,APP的 是26.1.0,而 测试APP是 27.1.1

解决措施:

1).最简单的方法,直接Rebuild Project ,此次编译可以通过,但后面还是出现,比如:Clean Project时

2).直接在build.gradle 修改SdkVersion

compileSdkVersion 26
targetSdkVersion 26

改为

compileSdkVersion 27
targetSdkVersion 27

3). 修改 dependencies

image

第一印象直接添加一句
com.android.support:support-annotations:26.1.0 ,就行了吧,等你同步后,发现然并卵

我这么试了发现根本就不行。查了好久才发现并不只是这一句有问题,在google之后http://stackoverflow.com/questions/28999124/resolved-versions-for-app-22-0-0-and-test-app-21-0-3-differ给出了一些解释。

简单粗暴的方法,添加force强制指定annotations,你会发现成功了

configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'
  }


问题2

android.content.res.Resources$NotFoundException: String resource ID #0x0
在给TextView的setText(Int int)方法中的int指的是R.string.xxx,不能赋值其它int值


问题3、 apk安装出现闪退

java.lang.RuntimeException: Unable to instantiate application

在build.gradle文件中将gradle版本安装提示修改后重新编译得到解决

image

问题4

Error:Tag attribute name has invalid character ’ ‘.
Error:Tag attribute name has invalid character ’ ‘.
Error:org.gradle.process.internal.ExecException: Process ‘command
‘E:\Android\sdk\build-tools\26.0.2\aapt.exe” finished with non-zero
exit value 1 Error:Execution failed for task
‘:backend01:processDebugResources’.
Failed to execute aapt

这个错误是因为在AndroidManifest.xml中category的值有一个空格,将空格去除就好了


问题5

 Error:Execution failed for task :app:processDebugAndroidTestResources.
 No slave process to process jobs, aborting

clean和rebuild都没有成功后,直接点击 File>Invalidate Caches/Restart后编译通过

问题6

新建的工程 就出现这个错误

  • 出现的异常
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.1.
Open File
Show Details

  • 解决方案

看错误的信息

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.1.

我的理解 不能加载1.1.1 版本的 那么 就改成

dependencies {

    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
 //   implementation 'com.android.support.constraint:constraint-layout:1.1.1'
//替换陈这个版本的
   implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:support-v4:27.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

build

ok

问题7

1. Error:Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForDDebug‘
   java.lang.NullPointerException (no error message)
2. Error:Execution failed for task ':module:transformNative_libsWithStripDebugSymbolForDebug'.
   java.lang.NullPointerException (no error message)

  • 原因
    Debug模式找不到NDK。

  • 解决办法
    注释掉第11行的ndk

    image

问题8

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/graphics/drawable/DrawableWrapper;
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.graphics.drawable.DrawableWrapper" on path: DexPathList[[zip file "/data/app/com.cpsc.cpsc_pgsip-2/base.apk"],nativeLibraryDirectories=[/data/app/com.cpsc.cpsc_pgsip-2/lib/arm, /data/app/com.cpsc.cpsc_pgsip-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]

  • 根据问题得知是 android.support.v4.graphics.drawable.DrawableWrapper 找不到
  • 解决办法 ,分2步
    1.保持版本支持
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
compile 'com.android.support:design:27.1.1'

  1. 找到出问题的布局重新写一次,可能是这里的问题,我再做了1之后,发现没什么卵用(但是保持一致的还是好的)最后还是重新写一次布局ok了。

问题9

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@icon value=(@drawable/icon_hbh) from AndroidManifest.xml:30:9-42
    is also present at [xxx:wallet:unspecified] AndroidManifest.xml:16:9-43 value=(@mipmap/ic_launcher).
    Suggestion: add 'tools:replace="android:icon"' to  element at AndroidManifest.xml:27:5-48:19 to override.

原因:
AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。

解决方案:
方法1:在在工程的Manifest.xml的application标签下添加tools:replace=“android:icon, android:theme”(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools=“http://schemas.android.com/tools”,否则会找不到namespace哦,也可以按到Alt + Enter键快捷添加)
方法2:在build.gradle根标签上加上useOldManifestMerger true (懒人方法)

问题10

error: style attribute ‘@android:attr/windowEnterAnimation’ not found.

在Project/gradle.properties中添加 android.enableAapt2=false,就可以解决问题

问题11

当打包时出现Error:The number of method references in a .dex file cannot exceed 64K.的错误提示

1.在app的 build.gradle 中添加配置

...
android {
...
defaultConfig {
...
multiDexEnabled true
}
}
dependencies {
...
compile 'com.android.support:multidex:1.0.1'
...
}

2.在AndroidManifest.xml中的application标签中添加继承MultiDexApplication的类。当然,也可以不用继承MultiDexApplication类,而是在继承的Application类中加入下面的代码

protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}

问题12

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.helloworld1/com.example.helloworld1.gridview.GridViewActivity}; have you declared this activity in your AndroidManifest.xml?

该错误信息中的 have you declared this activity in your AndroidManifest.xml?明确指出“在 AndroidManifest.xml 文件中没有声明相关activity”

修改如下:
在 AndroidManifest.xml 文件中 添加相关activity即可

问题13

Android resource linking failed
AAPT: D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2781: error: resource android:attr/fontVariationSettings not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2782: error: resource android:attr/ttcIndex not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3207: error: resource android:attr/textFontWeight not found.
error: failed linking references.

这种情况一般是项目配置导致的,打开 File–> Project Structure,看到modules选项内容如下:


微信图片_20211008172159.png

在上图中会发现compile sdk version 和build tools version版本不一致,将build tools version版本也改为26.
如下图所示:


微信图片_20211008172159.png

再次运行成功。

有时候修改了上述配置后,还会遇到“Android resource linking failed”的错误,但是,仔细看构建信息,可能还会遇到另外一种错误,如下图标记所示:

The specified Android SDK Build Tools version (26.0.0) is ignored, as it is below the minimum supported version (29.0.2) for Android Gradle Plugin 4.0.1.

这个就涉及到Android gradle插件了,具体的可参考官网,找到相匹配的版本。
网址是:
https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh_cn

问题14

Error:(16,0) Gradle DSL method not found: 'android()'

原因:

当你通过ProjectStructure修改了编译的版本或工具时,可能会在Project的build.gradle配置文件中添加如下脚本代码,此时就会导致上面报错了。

android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
}

问题15

Error:Execution failed for task ':app:transformClassesWithDexForBaiduRelease'.

在引用第三方库时,可能出现重复引用 Support 库,而且 gradle编译会报错:
我们可以在项目 app 下的 build.gradle 里添加exclude排除第三方库中的重复依赖:

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.0.0'
implementation ('com.allenliu.versionchecklib:library:2.0.5') {
exclude group: 'com.android.support', module: 'appcompat-v7'
exclude group: 'com.android.support', module: 'support-v7'
}
...
}

问题16

Duplicate jar entry [android/support/v4/hardware/display/DisplayManagerCompat.class]

根据错误日志可知是系统 v4 包重复依赖问题。可以在项目 app 下的 build.gradle 里添加exclude排除第三方库中的 v4 包:

implementation ('com.xxx:xxx:2.0.1') {
exclude module: 'support-v4'
}

问题17

Error:SSL peer shut down incorrectly

在下载第三方库时,下载任务失败的错误。原因是因为下载文件的被限制了,可以更改jcenter()或maven()仓库地址,重新下载。

更改项目根目录下的 build.gradle 中的仓库地址,添加新的仓库地址(Bintray 或者 AliYun),并且要放在jcenter()之前,保证优先访问maven()中的地址。

buildscript {
repositories {
google()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
jcenter()
maven { url 'https://jitpack.io' }
}
}
...
allprojects {
repositories {
google()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
jcenter()
maven { url 'https://jitpack.io' }
}
}
...

问题17

1、Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. 

解决:

在build.gradle文件中加入以下代码

configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'
}

问题18

Error:Execution failed for task ':app:mergeDebugResources'.
> D:\workspace5\Boke\app\src\main\res\drawable\custom_Animation_progress_bar.xml: Error: 'A' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore

解决方法:

1、你的项目中res\drawable下存在大写字母,将项目中对应的大写字母改为小写字母即可

问题19


Error:Execution failed for task ':app:compileDebugNdk'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\Eclipse\android-studio-sdk\android-sdk-windows\ndk-bundle\ndk-build.cmd'' finished with non-zero exit value 2

解决方法:
1、编译NDK时最好不要使用SDKManager里下载的ndk-bundle,否则会报这些错误

2、官网下载NDK开发包,r9、r10系列,然后替换掉久的ndk就可以了

问题20

Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]

解决方式:在Moudel下的build.gradle添加如下代码

android {
lintOptions {
checkReleaseBuilds false
}
}

问题21

1634003418(1).png

解决方法:
在AndroidManifest.xml里面:

tools:replace="android:label"

 

问题22

c394a9661f847a7d218ede2e14d5d237.png

[androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\Administrator\.gradle\caches\transforms-2\files-2.1\b240857b340f59c86ea9 aaf340da2c21\versionedparcelable-1.1.1\AndroidManifest.xml Warning: Package name 'androidx.versionedparcelable' used in: androidx.versionedparcelable:versionedparcelable:1.1.1, com.android.support:v ersionedparcelable:28.0.0.
图中显示问题(the 'android.useAndroidX' property is not enabled),即说明了使用了AndroidX的依赖,但是并没有在gradle.properties文件中使能,so,只需要在gradle.properties文件中加上如下两句即可:

android.useAndroidX=true
android.enableJetifier=true

c394a9661f847a7d218ede2e14d5d237.png

问题23

提示Suggestion: add 'tools:replace="android:appComponentFactory"' to  element at AndroidM

在gradle.properties 文件里面添加

android.useAndroidX=true
android.enableJetifier=true

问题24

Cannot fit requested classes in a single dex file (# methods: 76968 > 65536)

问题原因:

该项目中定义的方法太多了,一个dex已经装不下了,需要个多个dex,也就是multidex ,因为Android系统定义总方法数是一个short int,short int 最大值为65536

解决方法

在 app 的 build.gradle 文件中

android {
    defaultConfig {
        // 这里添加
        multiDexEnabled true
    }
}
dependencies {
    // 引入multidex库
    implementation 'com.android.support:multidex:1.0.3'
}

在自定义的 application 中初始化 MultiDex

public class App extends Application{
    
    private static App mApp;
    
    @Override
    public void onCreate() {
        super.onCreate();
        mApp = this;
        // 初始化MultiDex
        MultiDex.install(this);
    }

    public static App getApp() {
        return mApp;
    }
}

问题25

Cannot find declaration to go to
解决方式:找到Studio的File菜单 找到 Invalidate Caches / Restart

问题26

java.lang.RuntimeException: ARouter::Compiler >>> No module name, for more information, look at gra
下面这就话,原文复制到defaultconfig 中即可.

javaCompileOptions {
            annotationProcessorOptions {
                arguments = [AROUTER_MODULE_NAME: project.getName(), AROUTER_GENERATE_DOC: "enable"]
            }
        }

问题27

\app\build\outputs\apk\debug\app-debug.apk' Installation failed due to: 'INSTALL_FAILED_TEST_ONLY'
解决措施(oppo会出现安装失败)
在gradle.properties里添加

android.injected.testOnly=false

问题28'

Could not GET 'https://dl.bintray.com/umsdk/release/com/android/tools/build/gradle/4.0.0/gradle-4.0.0.pom'. Received status code 502 from server: Bad Gateway Disable Gradle 'offline mode' and sync project
解决:/umsdk/release/com/android/不能下载,

问题29

Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(XXX)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols.
Caused by: org.gradle.api.InvalidUserCodeException: Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository

解决方法
1 添加关键字 allowInsecureProtocol
maven {
            allowInsecureProtocol = true
            url 'xxx'
}

2 maven 地址url 由http改为https
问题30

Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

0207a64873d84dc0b1def378d0af3f58.png

翻译成中文:

在"/Users/lijunde/Library/Android/sdk/build-tools/31.0.0/dx"文件夹中,31.0.0版本的构建工具缺少了DX文件。

已安装的31.0.0版本的构建工具已损坏。使用SDK管理器删除并再次安装。

看到这个报错信息我很疑惑,31.0.0版本的构建工具明明是从Android Studio的SDK管理器下载的,为什么会提示已损坏呢?于是我按照提示,删除并重装了31.0.0版本的构建工具,但重新构建项目依然提示上述错误信息。

接着我求助了Google和StackOverflow,终于找到了完美的解决方案。

解决方案
根据构建报错信息"31.0.0版本的构建工具缺少了DX文件",以及StackOverflow的解决方案发现,31.0.0版本的构建工具缺少了"dx"和"dx.jar"这两文件,正确的做法就是对应路径的"d8"和"d8.jar"这两文件创建副本,并分别改名为"dx"和"dx.jar","d8"和"d8.jar"这两文件的大致路径为:

C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\d8
C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\d8.jar

0207a64873d84dc0b1def378d0af3f58.png

问题30

Caused by: java.lang.ClassNotFoundException: org.gradle.api.internal.component.Usage
解决办法 这是由于插件兼容问题导致的错误,如果有com.novoda:bintray-release请把版本修改为0.5.0。 PS : 感谢weixin_41101173的提示,对于大于AndroidStudio3.14版本的,请改为0.8.0 async以后 出现新的问题 从网上百度了一下,好多博客写的是Gradle版本过高,修改成4.4(原本为4.6) 进行修改,

问题31

Duplicate class androidx.versionedparcelable.VersionedParcelable found in moudle
解决
只要在project 的gradle.properties 内加入

以下两句

android.useAndroidX=true
android.enableJetifier=true

问题32

2021-08-06 20:32:37.206 5797-5797/com.ba.manage E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ba.manage, PID: 5797 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/FragmentActivity; at Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.app.FragmentActivity" on path: DexPathList[[zip file "/data/app/com.ba.manage-F9vM0zF4Kv55g0wDN8D-XA==/base.apk"],nativeLibraryDirectories=[/data/app/com.ba.manage-F9vM0zF4Kv55g0wDN8D-XA==/lib/arm64, /data/app/com.wq.manage-F9vM0zF4Kv55g0wDN8D-XA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at
解决
只要在project 的gradle.properties 内加入

以下两句

android.useAndroidX=true
android.enableJetifier=true

问题33

00 pc 00000000002300f0 /apex/com.android.runtime/lib64/libart.so (void art::mirror::Object::VisitReferences, art::gc::collector::ConcurrentCopying::RefFieldsVisitor >(art::gc::collector::ConcurrentCopying::RefFieldsVisitor const&, art::gc::collector::ConcurrentCopying::RefFieldsVisitor const&)+2008) [arm64-v8a::184faa3d168755a63d13dc4ef02c74fa] 201 pc 00000000002204b0 /apex/com.android.runtime/lib64/libart.so (art::gc::collector::ConcurrentCopying::ImmuneSpaceScanObjVisitor::Callback(art::mirror::Object*, void*)+120) [arm64-v8a::184faa3d168755a63d13dc4ef02c74fa]

解决方案:
打开AndroidStudio的Device File Explorer,如下:


20201224171501252.png

找到/data/local/tmp/perfd文件夹,删除它,就可以了。我上面的是已经删除过的。为什么会这样,不太清楚。如果你担心删除有问题,可以先备份下,再删除

问题34

e: E:\studiowork\Navigation\app\src\main\java\com\eyuai\mvvm\MvvMActivity.kt: (6, 29): Unresolved reference: BR
解决方法:

1659580618075.jpg

问题35

Invalid Gradle JDK configuration found. Open Gradle Settings Change JDK location
解决方案:

1.可能是没有设置jdk, 打开File-Project Structure-SDK Location,设置JDK Location


6fd35627f3b30e71d4eb4adf689cab6f.png

2.把项目下的 .idea/gradle.xml中 的gradleJvm由JDK改成1.8 ,如果没有直接加上即可, 如下图


3adf8574aeb14695b91d47f5affb0d92.jpg

你可能感兴趣的:(studio 错误汇总以及解决办法)