Android编译通过,运行编译错误问题总结

一.   > 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.  第一种解决方法如英文提示第一种   (重点看上面小括号里的内容

                 1.1  如果是上面(xxxx.jar),则一定是项目libs目录下jar文件:

                         添加依赖  annotationProcessor files("libs/butterknife-6.0.0.jar")

                 1.2  如果是(网络依赖地址),例如:- permissionsdispatcher-processor-3.0.1.jar (com.github.hotchemi.permissionsdispatcher:permissionsdispatcher-processor:3.0.1)

                         添加依赖  annotationProcessor "com.github.hotchemi.permissionsdispatcher:permissionsdispatcher-processor:3.0.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中的。(具体根据自己的使用情况)

 

五.  org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:52)
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值