AS Notes|記錄日常開發遇到的 AS 問題(不斷更新。。。

HLQ_Struggle發表於2022-06-15
我們走過了青春,卻離別在了秋季。。。

先放一張目前 Android Studio 版本圖:

image.png

PS:說實話不太喜歡這個掘金圖片打標記的情況,不方便後期同步,懶得搞圖床啥的,還是建議和 CSDN 學習下,能否給個開關,由作者去選擇是否給圖片加對應的標記。

佔樓,看了下掘金之前草稿箱出現圖片丟失情況,先發文,後續慢慢更新...

這裡僅記錄個人遇到的一些 AS 問題以及驗證成功的解決方式,當然每個人環境或者其他情況不太一樣,這個看個人情況而定吧。

望諒解。。。

1、Git 顯示亂碼

image.png

之前出現過這個問題,主要是因為字型原因,這次嘗試一波:

image.png

選擇字型之後,點選 Apply 並 Ok,再回頭看:

image.png

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

image.png

隨後將 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 方案:

  • 點選下圖的小象,重新進行一次同步即可

Git.png

4、Loading Devices...

先附上對應圖:

Loading Devices...png

Android Studio 載入不出對應的裝置。

Fix 方案:

  • 檢查當前電腦端 adb 是否啟動多個,強制退出後再次觀察。或者通過 adb kill 方式幹掉,然後再試試。

image.png

這裡需要觀察手機端是否開啟「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

操作示意圖:

image.png

7、Android Studio 右側 Gradle 不顯示自定義的 task

將如下關閉,並且重啟 Android Studio,重新 Build 即可。

image.png

8、ing

THK

相關文章