我們走過了青春,卻離別在了秋季。。。
先放一張目前 Android Studio 版本圖:
PS:說實話不太喜歡這個掘金圖片打標記的情況,不方便後期同步,懶得搞圖床啥的,還是建議和 CSDN 學習下,能否給個開關,由作者去選擇是否給圖片加對應的標記。
佔樓,看了下掘金之前草稿箱出現圖片丟失情況,先發文,後續慢慢更新...
這裡僅記錄個人遇到的一些 AS 問題以及驗證成功的解決方式,當然每個人環境或者其他情況不太一樣,這個看個人情況而定吧。
望諒解。。。
1、Git 顯示亂碼
之前出現過這個問題,主要是因為字型原因,這次嘗試一波:
選擇字型之後,點選 Apply 並 Ok,再回頭看:
2、Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
錯誤日誌如下:
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
根目錄下輸入如下命令檢視版本資訊:
- ./gradlew --version
輸出如下:
Welcome to Gradle 7.0.2!
Here are the highlights of this release:
- File system watching enabled by default
- Support for running with and building Java 16 projects
- Native support for Apple Silicon processors
- Dependency catalog feature preview
For more details see https://docs.gradle.org/7.0.2/release-notes.html
------------------------------------------------------------
Gradle 7.0.2
------------------------------------------------------------
Build time: 2021-05-14 12:02:31 UTC
Revision: 1ef1b260d39daacbf9357f9d8594a8a743e2152e
Kotlin: 1.4.31
Groovy: 3.0.7
Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM: 1.8.0_211 (Oracle Corporation 25.211-b12)
OS: Mac OS X 10.16 x86_64
按照如下路徑修改 JDK 版本為 11:
- Preferences > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK
隨後將 build 中的 JDK 版本做替換:
android {
// ...
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '11'
}
}
3、Error: Activity class {cn.xxx.xxx/cn.xxx.xxx.SplashActivity} does not exist.
先來看下異常輸出:
Error while executing: am start -n "cn.xxx.xxx/cn.xxx.xxx.SplashActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=cn.xxx.xxx/.SplashActivity }
Error type 3
Error: Activity class {cn.xxx.xxx/cn.xxx.xxx..SplashActivity} does not exist.
這裡出現這個問題主要是因為切換不同的版本(包名不一樣),導致 install 手機上不能正確開啟啟動頁面。
Fix 方案:
- 點選下圖的小象,重新進行一次同步即可
4、Loading Devices...
先附上對應圖:
Android Studio 載入不出對應的裝置。
Fix 方案:
- 檢查當前電腦端 adb 是否啟動多個,強制退出後再次觀察。或者通過 adb kill 方式幹掉,然後再試試。
這裡需要觀察手機端是否開啟「USB 除錯」,我這裡的 OPPO 以及 VIVO 總是會出現斷線情況,需要重新開啟。
這裡根據個人情況而定。
5、Received status code 405 from server: Method Not Allowed
Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.6.3/gradle-3.6.3.pom'. Received status code 405 from server: Method Not Allowed
Disable Gradle 'offline mode' and sync project
懷疑是本地的某些配置,導致訪問不正常。
本地網路連線正常,訪問也均正常。
本人解決方式:
- 清除本地所有 AS 快取配置,都在隱藏檔案中,記得挨個刪除。不行就直接解除安裝 AS,然後一個個全部刪除。
特意搜尋了下 405 原因,一起來看下:
405 錯誤一般指請求 method not allowed
錯誤,本文列出了出現該錯誤的可能原因。
出現 405 錯誤的可能原因有:
- POST 類請求出現 302 跳轉,302 跳轉的時候會更改請求方法此時服務端可能不能識別,則報 405 錯誤。
- 請求服務端直接校驗 Method,對應 Response Header 中會有 Allow =GET 的資訊字樣。
- 負載均衡或者 Web Server 上做轉發的時候,修改了請求 Method 導致後端無法識別。
6、Invocation failed Unexpected end of file from server
23:55:16.609: git -c credential.helper= -c core.quotepath=false -c log.showSignature=false fetch origin --recurse-submodules=no --progress --prune
Invocation failed Unexpected end of file from server
java.lang.RuntimeException: Invocation failed Unexpected end of file from server
at org.jetbrains.git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:30)
at org.jetbrains.git4idea.http.GitAskPassApp.main(GitAskPassApp.java:58)
Caused by: java.net.SocketException: Unexpected end of file from server
at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:863)
at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(DefaultXmlRpcTransport.java:87)
at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:72)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178)
at org.jetbrains.git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:27)
... 1 more
error: unable to read askpass response from '/Users/heliquan/Library/Caches/Google/AndroidStudio2021.1/tmp/intellij-git-askpass-local.sh'
fatal: could not read Username for 'http://xxx.xxx.cn': Device not configured
按如下勾選 Use credential helper 即可。
Preferences
-> Version Control
-> Git
-> 勾選 Use credential helper
操作示意圖:
7、Android Studio 右側 Gradle 不顯示自定義的 task
將如下關閉,並且重啟 Android Studio,重新 Build 即可。