一. > Could not find com.android.support:support-annotations:28.0.0.
Required by:
project :app > com.android.support:support-v4:21.0.3
> Could not find com.android.support:support-annotations:28.0.0.
Required by:
project :app > ch.acra:acra-http:5.3.0 > ch.acra:acra-core:5.3.0 > ch.acra:acra-javacore:5.3.0
解决方法:
1. 看异常未找到的是annotations注解包,首先查是否依赖support-annotations,如果依赖了appcompat 包也可以,它的内部包含注解包;
2. 依赖后不起作用,查看sdk版本,使用版本对应注解包版本,例如:sdk版本为26,而support-v4使用的21的版本,依赖那句代码下面会有红线;
3. 其实上面的都没用,Could not find 是因为 com.android.support 是在google的maven库中,需要在项目根目录下的build.gradle 中在 repositories 节点下添加 google();
4. 第三点添加后可能还不能使用,因为google的maven库需要gradle插件版本在3.2.0之上,如下图:
所以在根目录下的build.gradle 中还要提高gradle插件版本,对应的也需要在gradle/wrapper目录下的gradle-wrapper.properties文件中调整gradle版本;
二. > Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
- butterknife-6.0.0.jar (butterknife-6.0.0.jar)
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior. Note that this option is deprecated and will be removed in the future.
解决方法:
1. 第一种解决方法如英文提示第一种
添加依赖 annotationProcessor "com.jakewharton:butterknife:8.8.1"
2. 第二种解决方法如英文提示第二种
defaultConfig节点下添加 javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } } ,最好用第一种,英文提示有说这种会废弃,但是看你项目的具体环境,我使用第一种时还是编辑不通过。
三. > com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\XQSKKFJ\.gradle\caches\transforms-1\files-1.1\acra-core-5.3.0.aar\339764307da79406ab48d82ea26a52b1\jars\classes.jar
解决方法:
1. 最为简单,在build.gradle中设置java jdk版本为1.8
四. Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: app/build/intermediates/transforms/dexBuilder/debug/目录下无数个n.jar报错(n为整数)
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: org.acra.sender.HttpSender$Method
解决方法:
1. 删掉app下的build目录,编译重新生成是没有用的。重要的是看报错信息最下面那句,会提示冲突的位置。例如上面的错误就是org.acra.sender.HttpSender这个类存在两个,一个在本地打的aar中,一个在网络依赖库,我需要是用网络库的,就去掉aar中的。(具体根据自己的使用情况)