Android Studio 常见问题及解决方法(推荐)
一、Error:Allflavorsmustnowbelongtoanamedflavordimension
问题描述:
Error:Allflavorsmustnowbelongtoanamedflavordimension.
解决办法:
应该是因为使用了productFlavors分包,解决方法就是在build.gradle中的defaultConfig中添加一个flavorDimensions"1"就可以了,后面的1一般是跟你的versionCode相同
二、com.android.tools.aapt2.Aapt2Exception
问题描述:
Error:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:
AAPT2error:checklogsfordetails
解决办法:
一般跟aapt2相关的问题的解决方法就是:在gradle.properties中关闭APPT2编译,加上下面这行代码就好了:
android.enableAapt2=false
三、USB安装调试时遇到解析包错误解决方式
四、编译时报错Unabletomergedex
日志信息:
Error:Executionfailedfortask':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.>java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:Unabletomergedex
Jar包重复导致的问题,这块去排查的话,建议打开每个jar包里面的内容去检查包名。
五、Pluginwithid'com.github.dcendents.android-maven'notfound
在引用开源项目的时候,经常会遇到如下的报错:
Error:(2,0)Pluginwithid'com.github.dcendents.android-maven'notfound
那么如何解决这个问题呢?首先在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:Donotplaceyourapplicationdependencieshere;theybelong //intheindividualmodulebuild.gradlefiles } }
添加完之后同步即可。
六、BinaryXMLfileline#1:invaliddrawabletagvector
在Android中使用Vector来替代传统的图片有很多好处,比如自适应,体积小,不失真等。但是,在Android5.0以下版本使用时会有兼容性问题,在Androi5.0以下的设备可能会报这样的错误:
Causedby:org.xmlpull.v1.XmlPullParserException:BinaryXMLfileline#1:invaliddrawabletagvector
解决办法
1.首先在使用时,我们需要添加依赖
compile'com.android.support:support-vector-drawable:25.3.1'
2.在defaultConfig下面添加声明
vectorDrawables.useSupportLibrary=true
3.在Activity的oncreate中加入如下代码即可
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
示例如下:
@Override protectedvoidonCreate(@NullableBundlesavedInstanceState){ super.onCreate(savedInstanceState); AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); }
这样我们就可以在5.0以下的设备上使用Vector了
七、AndroidStudio导出JavaDoc时出现中文乱码问题
AndroidStudio导出JavaDoc过程中,如果出现中文乱码的问题,可以在Othercommandlinearguments栏目添加命令参数:
-encodingUTF-8-charsetUTF-8(如果是GBK,参数为-encodingGBK-charsetGBK)。
位置参照下图:
即可解决中文乱码问题,效果图如下:
八、Manifestmergerfailedwithmultipleerrors,seelogs
此问题一般出现在项目合并第三方提供的aar的时候AndroidStudio报错:Manifestmergerfailedwithmultipleerrors,seelogs。
打开详细gradle报错日志,发现是执行任务processDebugManifest报错:
org.gradle.api.tasks.TaskExecutionException:Executionfailedfortask'...:processDebugManifest'.
atorg.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
atorg.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at...
单纯看AndroidStudio的日志是看不出来是哪里出现的问题,这是需要我们进一步检查原因,我们可以使用下面的命令可以打印更详细的日志:
gradlewprocessDebugManifest-stacktrace
如存在错误,会输出类似下面日志的内容:
...\src\main\AndroidManifest.xml:71:9-43Error:Attributeapplication@iconvalue=(@mipmap/ic_launcher)fromAndroidManifest.xml:71:9-43isalsopresentat[:xxx-release:]AndroidManifest.xml:25:9-45value=(@drawable/ic_launcher).Suggestion:add'tools:replace="android:icon"'to
elementatAndroidManifest.xml:68:5-4094:19tooverride.
此类问题一般当我们项目Manefest的某些属性和第三方库中Manefest的属性有冲突会报上面的错误。比如第三方库中也定义了icon、allowBackup等属性,且会与你的项目不同,则发生冲突,编译就会报错。解决办法就是在我们项目的Application节点中加入tools:replace来替换三方库中的相关属性,如下:
还有一种方案就是去掉第三方库中冲突的属性。
九、NostaticfieldxxxxoftypeIinclassLcom/xxx/xxx/R$id;控件id找不到问题问题描述:
问题的原因是系统没有找到此id;
解决方法:
如果你可以找到此id的话,说明你的layout.xml有重复的;把当前的layout.xml修改一下名字;主工程和Model中的布局文件名称layout.xml也不可以相同;
注意:需要修改的是layout.xml的名字不是该控件的id的名字;
总结
到此这篇关于AndroidStudio常见问题及解决方法的文章就介绍到这了,更多相关AndroidStudio常见问题内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。