因為項目不同,有些公用庫而且還是c++的,還有一些帶資源的,簡單的複製遇到庫升級又是一輪配置,編譯成aar則解決這些麻煩。 但是預設andriod studio的make moudle只生成debug包,在3.0以上及時生成release的apk,release的aar也不會生成。 這個時候要用到 ...
因為項目不同,有些公用庫而且還是c++的,還有一些帶資源的,簡單的複製遇到庫升級又是一輪配置,編譯成aar則解決這些麻煩。
但是預設andriod studio的make moudle只生成debug包,在3.0以上及時生成release的apk,release的aar也不會生成。
這個時候要用到 "gradlew assembleRelease" 這個命令,在Andriod studio 裡面打開終端,在項目的根目錄下執行,(不能再Moudle裡面執行)。
如果出現Unsupported major.minor version 52.0這個問題,那就是你終端的版本不對,至少要8.0以上,那為什麼Andriod studio裡面能正常生成,到了命令行不行,因為Andriod studio裡面有內置的java版本。
如何解決這個問題,很多人選擇升級java版本,但是還有更簡便的方法,如果有些人的java還需要低版本來測試和支持低版本的java程式,那難道還升級嗎?
因為它是利用gradle來進行編譯的,打開gradle的批處理文件看看還什麼解決辦法。
一般來說在 C:\Program Files\Android\Android Studio\gradle\gradle-4.1\bin 下麵的gradle.bat ,不同版本的版本號不同,實際目錄可以在Andriod studio的settings裡面查。
批處理文件裡面,我們看到重要的語句:
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
取JAVA_HOME這個變數,那就容易辦了,你只需要在命令行下麵執行set JAVA_HOME=C:\Program Files\Android\Android Studio\jre 就可以了,這種命令只對當前的命令session有效,而不會改變全局java版本,執行完再執行gradlew assembleRelease 即可。
Andriod studio內置的java版本路徑在哪,在Andriod studio 的settings裡面查看。
好了,這裡做個筆記和分享。