編譯出現jar問題
㈠ Android 集成三方SDK編譯時classes.jar文件沖突
這幾天的任務是將mapbox的工程合到程序中去,但是合並過程卻出現了問題
合並方法:在app的build.gradle中添加
dependencies {
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:0.7.4@aar'){
transitive=true
}
}
但是合並後會報錯:
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
這個錯誤是由於jar包沖突,解決方法如下:
方法一:找到沖突包,將沖突包刪除,一般沖突包為'com.android.support:appcompat-v7:22.2.0'或者'com.android.support:support-v4:22.2.0',但是我刪除沖突包後,依然報錯,於是使用方法二
方法二:因為我的沖突包是'com.android.support:support-v4:22.2.0',所以找到項目根目錄-build-intermediates-dex-cache-cache.xml文件,將其中跟v4有關的全部刪除,然後clean project,然後將compile改為provided如下:
dependencies {
compile 'com.vividsolutions:jts:1.13'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.jakewharton:disklrucache:2.0.2'
provided 'com.android.support:support-v4:21.0.0'
}
㈡ 引入jar包編譯不存在
引入jar包編譯不存在的解決方法為:
1、打開idea的Settings,進入BuildExecutionDeployment/BuildTools/Maven/Runner,將DelegateIDE勾上。
2、把maven的setting文件中的本地倉庫地址注釋掉。關閉idea,重新載入本地倉庫文件。
3、直接在idea命令行輸入:mvnidea:idea。
㈢ Android Studio 怎麼添加使用第三方jar包及無法編譯的問題解決方法
Android Studio中jar包放在libs目錄下,jni編譯的so庫存放在libs目錄下的armeabi目錄中。導入步驟:1. 右鍵app目錄,find path,即打開app目錄。2. 在libs目錄下新建文件夾,名字為 armeabi,注意名字不能改。3. 將jar復制到libs目錄下。4.將.so庫文件復制到armeabi目錄下即可。
㈣ android系統編譯jar包給app使用
最近在android O編譯系統jar包給應用使用遇到了點問題,網上也沒有找到解決方案,這里記錄下。
編譯方法參考網上博客就可以, android源碼編譯jar包
最終生成了javalib.jar,改名為 tvManager.jar即可。注意:如果沒有指定LACAL_JACK_ENABLED選項,則默認是enabled,將會生成classes.jack文件,不會產生classes.jar包!
正常按照上面方案就可以編譯出jar包,導入到AS裡面就可以使用,下面說下我遇到的問題
遇到classes.jar.toc被依賴, 但是怎麼編譯都沒有編譯出來,網上也沒有找到對應的方法,編譯錯誤如下:
https://www.cnblogs.com/wangqiang9/p/9679466.html
https://stackoverflow.com/questions/43471694/how-to-generate-classes-dex-toc-files
㈤ Maven編譯環境時報錯,本地已經存在這個jar包,始終編譯不 Missing artifact javax.jms:jms:jar:1.1
缺失了javax.jms:jms:jar:1.1 這個包
看看是不是中央maven庫中也沒有這個包。
這個是sun的包,涉版權問題,可能中央庫已經把這個包移除了。
如果是這種情況,需要引入本地的這個包進去
