關於很慫地退回SDK,ndk,gradle版本這件事。。。(降版本fix項目異常)


前言:說明一下,這篇文章對別人應該是沒什么用的,單作為自己的記錄吧,方便以后查詢

電腦重裝后沒有再使用之前的studio2.3,而是直接下載了最新版的v3.1.2,同時升級了所有SDK(28),NDK(v17),及gradle(4.4)的版本,可以說是洋盤慘了。

隨后有一些新版本使用的坑都一一跳過了,什么compile啊,dataBinding啊等等,過了幾天發現之前使用jni編譯的音視頻錄制的Muxer的so包用不了,提示的主要是ndk的問題,前篇說到過的問題,ndk的版本其實在v16的版本時就已經不支持armeabi架構了,遂換做r13版。
重新build,依然是各種找不到文件的問題,最后沒辦法只好試下回退舊版本時的配置。

Error:Compilation failed; see the compiler error output for details.

在Android studio的Terminal中直接輸入命令

gradlew compileDebug --stacktrace 

就可以輸出較詳細的信息,然后根據命令行給出的提示,還可以在后面加上-info或者-debug的選項得到更詳細的信息:

gradlew compileDebug --stacktrace -info  
或者:gradlew compileDebug --stacktrace -debug 

 

 

之后找到是jdk版本過高,build時找不到java version 10.0.2:

Error:Could not determine java version from '10.0.2'.

因為之前我使用的是gradle4.4(gradle-wrapper.properties中設置的)+jdk10,考慮到降版本我就把gradle4.4換成了gradle3.3,而JDK10這樣的高版本需要4.3以后的Gradle版本,所以此時需要降低jdk版本,我又用了原來的jdk1.8,這個問題算是解決了。

 

Warning:WARNING: Dependency org.json:json:20090211 is ignored for release as it may be conflicting with the internal version provided by Android.In case of problem, please repackage it with jar to change the class packages

 這個警告也會導致build失敗,主要是因為不同的SDK之間引用了同一個jar包,解決辦法:

在build.gradle中添加

configurations{
    compile.exclude group:'org.json', module:'json'
}

也可以直接把不同SDK中的重復的jar包去除,比如,我使用到了socketIO的jar包 compile 'io.socket:socket.io-client:0.8.2'

將它改為這樣即可:

compile ('io.socket:socket.io-client:0.8.2'){
        exclude group:'org.json', module:'json'
    }

 

中間也還處理了很多問題,總之就是終於完成了,最后趕緊用小本本記下:

① studio依然是現在的3.1版本,ndk降為r13,SDK降成了25;

② gradle(Project下的build.gradle中的)版本從'com.android.tools.build:gradle:3.1.2'降為'com.android.tools.build:gradle:2.3.2';

③ Project下的build.gradle中的google()依賴去掉;

④ module下的build.gradle中

packagingOptions {
        exclude 'AndroidManifest.xml'
        exclude 'META-INF/LICENSE'
//        exclude 'lib/armeabi/lib1.so'
//        exclude 'lib/armeabi/lib2.so'
    }

之前exclude 掉了so包,這兩行要去掉;

 ⑤ 這時候build的apk會自動生成到app/build/apk下,但還是instantRun格式的,要生成直接發送到手機上即可安裝的apk,依舊需要使用前幾天提到的installDebug方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM