Android Studio 常見問題及解決方法


一、Error:All flavors must now belong to a named flavor dimension

問題描述:

Error:All flavors must now belong to a named flavor dimension. 

解決辦法:

應該是因為使用了productFlavors分包,解決方法就是在build.gradle中的defaultConfig中添加一個flavorDimensions "1"就可以了,后面的1一般是跟你的versionCode相同

二、com.android.tools.aapt2.Aapt2Exception

問題描述:

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception:

AAPT2 error: check logs for details

解決辦法:

一般跟aapt2相關的問題的解決方法就是:在gradle.properties中關閉APPT2 編譯,加上下面這行代碼就好了:
android.enableAapt2=false

三、USB安裝調試時遇到解析包錯誤解決方式

四、 編譯時報錯Unable to merge dex

日志信息:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

解決方案:

Jar包重復導致的問題,這塊去排查的話,建議打開每個jar包里面的內容去檢查包名。

五、Plugin with id 'com.github.dcendents.android-maven' not found

在引用開源項目的時候, 經常會遇到如下的報錯:

Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found

那么如何解決這個問題呢?首先在Project下那個build.grade里面添加全局依賴:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        //1.自動化maven打包插件
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
        //2.自動上傳至Bintray平台插件
        classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

添加完之后同步即可。

六、Binary XML file line #1: invalid drawable tag vector

在Android中使用Vector來替代傳統的圖片有很多好處,比如自適應,體積小,不失真等。但是,在Android5.0以下版本使用時會有兼容性問題,在Androi 5.0以下的設備可能會報這樣的錯誤:

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector

解決辦法

1.首先在使用時,我們需要添加依賴

compile 'com.android.support:support-vector-drawable:25.3.1'

2.在defaultConfig下面添加聲明

vectorDrawables.useSupportLibrary = true

3. 在Activity的oncreate中加入如下代碼即可

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);

示例如下:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

這樣我們就可以在5.0以下的設備上使用Vector了

七、Android Studio 導出 JavaDoc 時出現中文亂碼問題

Android Studio 導出JavaDoc過程中,如果出現中文亂碼的問題,可以在Other command line arguments欄目添加命令參數:

-encoding UTF-8 -charset UTF-8(如果是GBK,參數為 -encoding GBK -charset GBK)。

位置參照下圖:

即可解決中文亂碼問題,效果圖如下:

八、Manifest merger failed with multiple errors, see logs 

此問題一般出現在項目合並第三方提供的aar的時候Android Studio報錯:Manifest merger failed with multiple errors, see logs。

打開詳細gradle報錯日志,發現是執行任務processDebugManifest報錯:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task '...:processDebugManifest'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at ...

單純看Android Studio的日志是看不出來是哪里出現的問題,這是需要我們進一步檢查原因,我們可以使用下面的命令可以打印更詳細的日志:

gradlew processDebugManifest -stacktrace 

如存在錯誤,會輸出類似下面日志的內容:

...\src\main\AndroidManifest.xml:71:9-43 Error:
        Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:71:9-43
        is also present at [:xxx-release:] AndroidManifest.xml:25:9-45 value=(@drawable/ic_launcher).
        Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:68:5-4094:19 to override.

此類問題一般當我們項目Manefest的某些屬性和第三方庫中Manefest的屬性有沖突會報上面的錯誤。比如第三方庫中也定義了icon、allowBackup等屬性,且會與你的項目不同,則發生沖突,編譯就會報錯。解決辦法就是在我們項目的Application節點中加入tools:replace來替換三方庫中的相關屬性,如下:

<application
 ...
 tools:replace="android:allowBackup,android:icon">

還有一種方案就是去掉第三方庫中沖突的屬性。

九、No static field xxxx of type I in class Lcom/xxx/xxx/R$id;控件id找不到問題

問題描述:

問題的原因是系統沒有找到此id;

解決方法:

如果你可以找到此id的話,說明你的 layout.xml有重復的;把當前的layout.xml修改一下名字;主工程和Model中的布局文件名稱layout.xml也不可以相同; 

注意:需要修改的是 layout.xml的名字 不是該控件的 id 的名字;

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM