Android Studio 常見問題及解決方法(推薦)
問題描述:
Error:All flavors must now belong to a named flavor dimension.
解決辦法:
應該是因為使用了productFlavors分包,解決方法就是在build.gradle中的defaultConfig中添加一個flavorDimensions '1'就可以了,后面的1一般是跟你的versionCode相同
問題描述:
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception:
AAPT2 error: check logs for details
解決辦法:
一般跟aapt2相關的問題的解決方法就是:在gradle.properties中關閉APPT2 編譯,加上下面這行代碼就好了:
android.enableAapt2=false三、USB安裝調試時遇到解析包錯誤解決方式
日志信息:
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);
示例如下:
@Overrideprotected 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)。
位置參照下圖:
即可解決中文亂碼問題,效果圖如下:
此問題一般出現在項目合并第三方提供的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
如存在錯誤,會輸出類似下面日志的內容:
...srcmainAndroidManifest.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 的名字;
總結
到此這篇關于Android Studio 常見問題及解決方法的文章就介紹到這了,更多相關Android Studio 常見問題內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
