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)
相關文章
- 執行無法解決的編譯錯誤編譯
- centos下caffe用GPU編譯搭建過程以及錯誤總結CentOSGPU編譯
- VS 編譯錯誤編譯
- AS中匯入android系統包編譯,執行全部通過Android編譯
- iOS: FFmpeg編譯和使用問題總結iOS編譯
- android - gradle編譯錯誤 exit value 1,2,3總結AndroidGradle編譯
- android反編譯工具總結Android編譯
- PHP編譯,執行make報錯PHP編譯
- 最近編譯tolua_runtime安卓編譯錯誤編譯安卓
- ipvs編譯錯誤編譯
- php編譯小錯誤PHP編譯
- 編譯PHP的錯誤編譯PHP
- Android Studio 編譯錯誤集錦Android編譯
- 編譯ROCKSDB總結編譯
- Rust 交叉編譯與條件編譯總結Rust編譯
- Android原始碼編譯整理總結Android原始碼編譯
- C語言的編譯連結執行過程C語言編譯
- Latex — 寫作編譯過程中遇到問題記錄與總結編譯
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- dos下編譯執行java程式遇到的問題編譯Java
- ios交叉比編譯android錯誤解決iOS編譯Android
- SPI編譯問題編譯
- perl 編譯問題!編譯
- jive編譯問題編譯
- flutter 編譯報錯總結(不斷更新)Flutter編譯
- android反編譯相關命令總結Android編譯
- 加快Android編譯速度的技巧總結Android編譯
- 通過ant指令碼編譯打包android工程指令碼編譯Android
- 編譯連結過程編譯
- vim編譯執行c編譯
- 初探 Go 的編譯命令執行過程Go編譯
- Flutter 混合開發實戰問題記錄(四)編譯執行時問題的一些總結Flutter編譯
- 經典的編譯錯誤 (轉)編譯
- 編譯過程導致ORA-4068錯誤編譯
- libmemcached編譯問題IBM編譯
- EBS form編譯問題ORM編譯
- PHP編譯安裝時常見錯誤解決辦法,php編譯常見錯誤PHP編譯
- .NET 編譯執行or解釋執行?編譯