Android Studio 常見問題及解決方法(推薦)
一、Error:All flavors must now belong to a named flavor dimension
問題描述:
Error:All flavors must now belong to a named flavor dimension.
解決辦法:
應(yīng)該是因?yàn)槭褂昧藀roductFlavors分包,解決方法就是在build.gradle中的defaultConfig中添加一個(gè)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相關(guān)的問題的解決方法就是:在gradle.properties中關(guān)閉APPT2 編譯,加上下面這行代碼就好了:
android.enableAapt2=false
三、USB安裝調(diào)試時(shí)遇到解析包錯(cuò)誤解決方式
四、 編譯時(shí)報(bào)錯(cuò)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包重復(fù)導(dǎo)致的問題,這塊去排查的話,建議打開每個(gè)jar包里面的內(nèi)容去檢查包名。
五、Plugin with id 'com.github.dcendents.android-maven' not found
在引用開源項(xiàng)目的時(shí)候, 經(jīng)常會(huì)遇到如下的報(bào)錯(cuò):
Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found
那么如何解決這個(gè)問題呢?首先在Project下那個(gè)build.grade里面添加全局依賴:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.3' //1.自動(dòng)化maven打包插件 classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' //2.自動(dòng)上傳至Bintray平臺(tái)插件 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來替代傳統(tǒng)的圖片有很多好處,比如自適應(yīng),體積小,不失真等。但是,在Android5.0以下版本使用時(shí)會(huì)有兼容性問題,在Androi 5.0以下的設(shè)備可能會(huì)報(bào)這樣的錯(cuò)誤:
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
解決辦法
1.首先在使用時(shí),我們需要添加依賴
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以下的設(shè)備上使用Vector了
七、Android Studio 導(dǎo)出 JavaDoc 時(shí)出現(xiàn)中文亂碼問題
Android Studio 導(dǎo)出JavaDoc過程中,如果出現(xiàn)中文亂碼的問題,可以在Other command line arguments欄目添加命令參數(shù):
-encoding UTF-8 -charset UTF-8(如果是GBK,參數(shù)為-encoding GBK -charset GBK)。
位置參照下圖:
即可解決中文亂碼問題,效果圖如下:
八、Manifest merger failed with multiple errors, see logs
此問題一般出現(xiàn)在項(xiàng)目合并第三方提供的aar的時(shí)候Android Studio報(bào)錯(cuò):Manifest merger failed with multiple errors, see logs。
打開詳細(xì)gradle報(bào)錯(cuò)日志,發(fā)現(xiàn)是執(zhí)行任務(wù)processDebugManifest報(bào)錯(cuò):
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的日志是看不出來是哪里出現(xiàn)的問題,這是需要我們進(jìn)一步檢查原因,我們可以使用下面的命令可以打印更詳細(xì)的日志:
gradlew processDebugManifest -stacktrace
如存在錯(cuò)誤,會(huì)輸出類似下面日志的內(nèi)容:
...\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.
此類問題一般當(dāng)我們項(xiàng)目Manefest的某些屬性和第三方庫中Manefest的屬性有沖突會(huì)報(bào)上面的錯(cuò)誤。比如第三方庫中也定義了icon、allowBackup等屬性,且會(huì)與你的項(xiàng)目不同,則發(fā)生沖突,編譯就會(huì)報(bào)錯(cuò)。解決辦法就是在我們項(xiàng)目的Application節(jié)點(diǎn)中加入tools:replace來替換三方庫中的相關(guān)屬性,如下:
<application ... tools:replace="android:allowBackup,android:icon">
還有一種方案就是去掉第三方庫中沖突的屬性。
九、No static field xxxx of type I in class Lcom/xxx/xxx/R$id;控件id找不到問題問題描述:
問題的原因是系統(tǒng)沒有找到此id;
解決方法:
如果你可以找到此id的話,說明你的 layout.xml有重復(fù)的;把當(dāng)前的layout.xml修改一下名字;主工程和Model中的布局文件名稱layout.xml也不可以相同;
注意:需要修改的是 layout.xml的名字 不是該控件的 id 的名字;
總結(jié)
到此這篇關(guān)于Android Studio 常見問題及解決方法的文章就介紹到這了,更多相關(guān)Android Studio 常見問題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android中監(jiān)聽系統(tǒng)網(wǎng)絡(luò)連接打開或者關(guān)閉的實(shí)現(xiàn)代碼
本篇文章對(duì)Android中監(jiān)聽系統(tǒng)網(wǎng)絡(luò)連接打開或者關(guān)閉的實(shí)現(xiàn)用實(shí)例進(jìn)行了介紹。需要的朋友參考下2013-05-05Android Material加載進(jìn)度條制作代碼
這篇文章主要為大家詳細(xì)介紹了AndroidMaterial加載進(jìn)度條的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Android自定義View實(shí)現(xiàn)音頻播放圓形進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)音頻播放圓形進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Android實(shí)現(xiàn)啟動(dòng)引導(dǎo)圖
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)啟動(dòng)引導(dǎo)圖,文中示例代碼介紹的非常詳細(xì),具有為大家詳細(xì)一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06Android四種數(shù)據(jù)存儲(chǔ)的應(yīng)用方式
這篇文章主要介紹了Android四種數(shù)據(jù)存儲(chǔ)的應(yīng)用方式的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握Android存儲(chǔ)數(shù)據(jù)的方法,需要的朋友可以參考下2017-10-10Android Bitmap的加載優(yōu)化與Cache相關(guān)介紹
這篇文章主要介紹了Android中性能優(yōu)化之Bitmap的加載優(yōu)化與Cache相關(guān)內(nèi)容介紹,文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-02-02