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 的名字;

总结

到此这篇关于Android Studio 常见问题及解决方法的文章就介绍到这了,更多相关Android Studio 常见问题内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • android项目从Eclipse迁移到Android studio中常见问题解决方法

    (1)将Eclipse项目导入到Android studio 中出现9-patch image问题解决方法: 在build.gradle里添加以下两句: aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false 用来关闭Android Studio的PNG合法性检查的,直接不让它检查. (2)Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface

  • Android Studio preview 不固定及常见问题的解决办法

    Android Studio提供了一个强大的"Preview"工具,可以帮助您预览您的布局文件将如何在用户的设备上呈现.XML布局可能是Android开发中最常用的资源. 您的项目中每个活动至少有一个布局文件. Android Studio的预览工具可帮助您实现这些伟大的设计,并快速迭代它们,甚至不需要运行您的应用程序.它还允许您查看布局的不同配置,例如在纵向或横向时的外观,或者TextView在多个语言环境(如英语,德语或希腊语)上的外观. 即使预览工具是强大的,可以使你的发展日子轻

  • Android中AndroidStudio&Kotlin安装到运行过程及常见问题汇总

    工具:Android Studio 语言:Kotlin 1.Android Studio的安装与配置 AndoridStudio官方网址:直接点击即可进入AS官网下载页面 1.1.android studio的下载与安装 下载好AS的文件后,直接打开androidstudio的exe文件,弹出安装欢迎对话框如下图所示 点击Next 勾选Android Virtual Devide(AVD)安卓虚拟设备,这样之后可以在电脑上生成一个虚拟的安卓机以方便我们运行编写好的程序.如果准备用真机进行测试的,

  • 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一般是跟你的version

  • Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)

    最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏. 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT

  • Android 百度地图marker中图片不显示的解决方法(推荐)

    目的: 根据提供的多个经纬度,显示所在地的marker样式,如下: 问题: 1.发现marker中在线加载的图片无法显示出来: 2.获取多个对象后,却只显示出了一个marker: 以下为官网实现方法: 通过查阅百度官网的文档,我们可以知道,地图标注物的实现方法如下: //定义Maker坐标点 LatLng point = new LatLng(39.963175, 116.400244); //构建Marker图标 BitmapDescriptor bitmap = BitmapDescript

  • Android Studio 创建自定义控件的方法

    我们知道,当系统控件并不能满足我们的需求时,我们就需要来创建自定义控件,主要有两种方法 (1)引入布局 下面来自定义一个控件,iPhone的标题栏,创建一个标题栏并不是什么难事,加入两个button一个TextView就行了,可是在我们的应用中,有很多页面都是需要这样的标题栏,我们不可能每个活动都写一遍布局,这个时候我们就可以用引用布局的方法,新建一个title.xml <?xml version="1.0" encoding="utf-8"?> <

  • MyBatis 参数类型为String时常见问题及解决方法

    1. 参数为String时的插值问题 假设有下面一Dao接口方法 public Account findByAccountType (String type)throws DaoException; 对应的Mapper.xml <select id="findByAccountType " parameterType="string" resultType="account"> select * form account <wh

  • python安装cx_Oracle模块常见问题与解决方法

    本文实例讲述了python安装cx_Oracle模块常见问题与解决方法.分享给大家供大家参考,具体如下: 安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.10.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免安装几百兆之巨的Oracle Client. 软件下载地址: cx_Oracle的主页:http://cx-oracle.sourceforge.net/ 必需的Oracle链接库的下载地址:h

  • php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)

    在做PHP程序时,需要使用PHP做的文件下载 那做就做呗把代码复制过来改了一改. 很多效果也出来了 那么点击下载后,恩,本以为搞定了文件下载,谁知道,图片打开的时候提示文件损坏,这我就观察了文件的大小.似乎真是多了 1KB左右. 使用PS打开,恩,提示了损坏,不过图象可以出来. 那么我就认为是 那多出来的 1kb的问题了. 然后,我把一个txt上传上去,然后下载. 果然发现,文件的前面以及后面,都多了几个 字符. 那我就在想应该怎么去掉啊.各种百度,谷歌,上论坛提问. 最后,经过我一个多小时的搜

  • 解决中文乱码的几种解决方法(推荐)

    首先说明我的特殊情况: 1. 前台jsp中,我使用的是 form post 请求,设置了 enctype="multipart/form-data" ,页面编码格式都是utf-8 2. 后台中,我使用的是commons-fileUpload组件,ServletFileUpload 解析form表单和文件, 3. 设置 request.setCharacterEncoding("UTF-8"); 4. 设置了ServletFileUpload .setHeaderEn

  • mysql安装时出现各种常见问题的解决方法

    小编为大家整理许多mysql安装时出现各种常见问题的解决方法,供大家参考,具体内容如下 问题一: 当各位在安装.重装时出现could not start the service mysql error:0 原因: 卸载mysql时并没有完全删除相关文件和服务,需要手动清除. 安装到最后一步execute时不能启动服务的解决方法: 首先,在管理工具->服务里面将MySQL的服务给停止(有的是没有安装成功,有这个服务,但是已经停止了的),win+R->cmd,打开命令提示符窗口,输入命令:sc d

  • easyui datagrid 大数据加载效率慢,优化解决方法(推荐)

    在使用easyui datagrid途中发现加载数据的效率真的不是一般的差.经测试IE8加载300条数据就感觉明显的慢了,加载2000条数据就另人崩溃用时差不多60秒,就算在google浏览器测试结果也快不了几秒. 平时听闻easyui datagrid效率底下,自己测试才发现真是使人无法忍受. 笔者只好百度,google解决方法,发现一篇文章说改 //1.3.3版本是这样的,其它版本也是这句代码 $(_1e0).html(_1e4.join("")); 改为: $(_1e0)[0].

随机推荐