環境
- Android Studio Arctic Fox | 2020.3.1
- Gradle、AGP 7.0
- Kotlin 1.5.31
問題1
Value '/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home' given for org.gradle.java.home Gradle property is invalid (Java home supplied is invalid)
解決
Gradle的java環境變數與系統JAVA_HOME不一致,
終端輸入:/usr/libexec/java_home -V,查看java路徑,
yechao@yechaoa ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.131.11 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_131 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
或是mac下,打開訪達,然后打開user目錄,command+shift+.顯示隱藏檔案夾,找到.bash_profile檔案,查看或配置java環境
# java home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
export PATH=${PATH}:${JAVA_HOME}/bin
export PATH=${PATH}:${JAVA_HOME}/jre/bin
然后打開專案中的gradle.properties檔案,查看org.gradle.java.home引數是否一致,改為一致即可,
#org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
注意:以上路徑改為自己的java路徑,
問題2
Method 'buildStarted' from class 'BuildTraceListener' does not override method from its superclass or interfaces but is annotated with @Override.
解決
Gradle 7.0移除了BuildListener.buildStarted(Gradle),直接洗掉buildStarted方法即可,
改用BuildListener.beforeSettings(Settings)代替,
問題3
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
AGP 7.0必須使用Java 11.
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
Gradle settings
解決
直接點擊Gradle settings

選擇android studio 11的版本,重新編譯即可,
注意: AGP的java版本跟專案的版本可以不一致,
也可以修改build.gradle中的配置為以下:
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '11'
}
只要你的專案支持即可,
問題4
DSL element 'dexOptions' is obsolete and should be removed.
It will be removed in version 8.0 of the Android Gradle plugin.
Using it has no effect, and the AndroidGradle plugin optimizes dexing automatically.
解決
dexOptions已經過時,會在AGP8.0移除,并且AGP會自動幫我們優化,所以,直接在build.gradle中移除dexOptions即可,
問題5
The specified Android SDK Build Tools version (30.0.1) is ignored, as it is below the minimum supported version (30.0.2) for Android Gradle Plugin 7.0.2.
Android SDK Build Tools 30.0.2 will be used.
To suppress this warning, remove "buildToolsVersion '30.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
Remove Build Tools version and sync project
Affected Modules: app
解決
buildToolsVersion 30.0.1 被忽略了,主要是因為低于AGP7.0.2所要求的的最低版本30.0.2,所以會使用30.0.2的版本,
而且后續AGP也會應用一個對應的默認的版本,直接移除buildToolsVersion即可,
問題6
Project property 'kotlin.parallel.tasks.in.project' is deprecated.
By default it depends on Gradle parallel project execution option value.
解決
kotlin.parallel.tasks.in.project棄用了,是kotlin 1.5.20版本中的變更,使用org.gradle.parallel就夠了,所以直接洗掉kotlin.parallel.tasks.in.project即可,
其他
還有一些代碼上的警告,按照提示解決即可,
Github
- https://github.com/yechaoa/wanandroid_jetpack
參考
- Android Studio release notes
- Upgrading your build from Gradle 6.x to the latest
- What’s new in Kotlin 1.5.20
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/303337.html
標籤:其他
