Jkeeper 发布的文章

測試編譯cocos2.3.3項目

gradle plugin version: 3.2.0

gradle version : 4.6

Sync Gradle 完成後顯示 gradle 4.6 不受 java11支持了
30796-w2riuoraff.png

查詢下 gradle 跟 gradle plugin 對應版本
17950-tuk2nvjdru8.png

gradle 選擇 7.2 , gradle plugin 選擇 7.1, 從 build.gradle 修改 gradle plugin 版本
63890-mjm9alvave7.png

選擇 File -> Project Structure, Gradle 版本選擇7.2
50183-so76jbeso8c.png

再執行 Sync Gradle 出錯,
A problem occurred evaluating project ':game'.

Plugin with id 'com.android.feature' not found.
22732-ft46qkhull.png

https://stackoverflow.com/questions/65452088/android-studio-plugin-with-id-com-android-feature-not-found

查詢得知 com.android.feature 在3.6.0後面就不再支持

由於編譯機器使用 java 17, 開啟老版本 as 會出現錯誤

編譯打包 apk 出現了亂碼錯誤
72503-4ohx7layddc.png

1、Android Studio 選擇 Help -> Edit Custom VM Options, 新增如下
-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8
切換到 Android 安裝路徑下 {path}\Android Studio\bin\studio64.exe.vmoptions 一樣加入上面兩行

2、Android Studio 選擇 File -> Setting, 設定 Global Encoding, Project Encoding 為 Utf-8,
勾選 Transparent native, 如下圖
68540-o79e0z6mbg.png

3、Editor / Console 設定如下
58720-e9yg8tz58k.png

Android Studio 點 File -> Invalidate Caches, Invalidate and Restart
47327-2d1ns7nae8p.png

測試還是無效

4、切換到系統設定-> 語言, 選擇其他時間和區域設定
09239-wrxfdctyqlp.png

切換 管理 -> 更改系統區域設定
08103-v6n43sei47p.png

勾選 Beta, 使用 Unicode UTF-8 提供語言支持
11515-10vvaff9ja0l.png

再重啟 Android Studio, 測試發現亂碼好了
76429-ckbed8ff8m.png

繼續上個打包, 又出現錯誤, 如下

Cause: com/android/build/gradle/internal/ide/DefaultAndroidProject has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

這個意思是說編譯代碼裡面或是引用的庫有55.0的版本, 但編譯環境的是 52.0的版本

查看了下 52 的是 Java8, 55 的是 Java11版本
45840-g9ow32lrdb6.png

安裝新版本並且更新 PATH, JAVA_HOME 環境變數後查看版本, 已經是新版本了
01996-6ohkkng560g.png

點開 Project Structure, 選擇 Module, 查看 Source Compatibility 發現是 Java8, 按下鍵只有 1.6、1.7、1.8 可以選擇, 強制填入 VERSION_1_11 會出錯。
71612-gnetg24zegg.png

這個跟 build.gradle 的 compileOptions 是一樣的, 修改也沒用
82152-y76xnme838.png

查看下 Android Studio 版本, 更新新版 android studio
20850-sssvwxtujem.png

這是更新的版本
68821-bjqo2w1x4mk.png

查看 module 的 java 版本, 執行 Sync Gradle 成功了
93887-o6xzmak6yq.png

上個cocos項目打包解決了問題之後又遇到了 sync gradle 問題, 這個問題找了有點久, 網上有說重啟 android stuido, 也有說改 gradle 版本的, 測試了都不行, 把 gradle 改成 7.0.2 也是一樣的錯誤, 後來仔細看了錯誤信息, 重點應該是在

The consumer was configured to find a runtime of a library compatible with Java 8

76198-8l5bui4xup6.png

索性去下載最新版本 java11, 結果還是沒用, android stuido 引用的還是系統 java8 路徑, 發現 android studio 引用的不是系統 Path 或是 JAVA_HOME定義, 點開 File -> Project Structure, SDK Location 這邊可以設定對應的 Java 版本, 設定了 Java11 再執行 Sync Gradle 就可以了

84168-n9wp7xe01b.png