您的当前位置:首页正文

AndroidStudio常见问题及解决方法(推荐)

2023-04-26 来源:客趣旅游网
AndroidStudio常见问题及解决⽅法(推荐)

⽬录

⼀、Error:All flavors must now belong to a named flavor dimension⼆、com.android.tools.aapt2.Aapt2Exception三、USB安装调试时遇到解析包错误解决⽅式四、 编译时报错Unable to merge dex

五、Plugin with id 'com.github.dcendents.android-maven' not found六、Binary XML file line #1: invalid drawable tag vector七、Android Studio 导出 JavaDoc 时出现中⽂乱码问题⼋、Manifest merger failed with multiple errors, see logs

九、No static field xxxx of type I in class Lcom/xxx/xxx/R$id;控件id找不到问题问题描述:

⼀、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 = true3. 在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 element at AndroidManifest.xml:68:5-4094:19 to override.

此类问题⼀般当我们项⽬Manefest的某些属性和第三⽅库中Manefest的属性有冲突会报上⾯的错误。⽐如第三⽅库中也定义了icon、allowBackup等属性,且会与你的项⽬不同,则发⽣冲突,编译就会报错。解决办法就是在我们项⽬的Application节点中加⼊tools:replace来替换三⽅库中的相关属性,如下:

还有⼀种⽅案就是去掉第三⽅库中冲突的属性。

九、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 常见问题内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

因篇幅问题不能全部显示,请点此查看更多更全内容