AndroidStudio 开发中问题总结部分1:
1:依赖包中含有全局变量定义:(Application);主项目中也含有全局变量(Application)
解决方式:让主application 继承依赖包中的全局类;
2:异常信息:
Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Translation has been interrupted
Error:Execution failed for task ‘:app:transformClassesWithDexFor_360Debug’.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Program Files\Java\jdk1.8.0_25\bin\java.exe” finished with non-zero exit value
解决办法:存在依赖包冲突;(找到并删掉;一般情况如果主项目 和 依赖项目中 都有的话;弃掉主项目 中的那个。)
3:Error:Configuration with name ‘default’ not found.
解决方式:setting文件 include “里面是目录 用 : 隔开”
4:两个项目相互依赖:
依赖过程中要注意的一点:如果两个项目相互依赖;并且每个项目都含有多个各自对应的子依赖包的话; 那么 在主项目A依赖被依赖的项目B 的时候;只要添加对应的B的主项目包即可;不必要添加B中对应的子依赖到A中了(添加过后看看B项目中是否含有对应的子的项目存在;如果不存在那就要重新添加到A主项目中!);
5:Error:(149, 22) 错误: 需要常量表达式
解决方式: 将 switch中的case 改成 if 判断就可以了;注意:一般都会有提示的直接Alt+Enter就可以了;
如果没有提示并且还缺少.R 文件的提示的话;
解决方式:单独生成一下依赖包:Build–> Make Module “XXX” ; XXX: 对应的依赖包;这样就会有提示并解决问题了;
6:在依赖过程中尽可能不要包含 相同的类或者相同的xml文件;这样会导致.R 文件不能知道调用的是哪一个;容易出错!
7:Error:Error converting bytecode to dex:Cause: com.android.dex.DexException: Multiple dex files define Lorg/apache/http/conn/util/InetAddressUtils;
解决方式: 艹 解决了差不多快两天今天更新了android studio 马上就好了!! 具体原因不甚清楚,也许是依赖项目对版本要求高的原因。解决问题中的收获:快速去掉重复包的方法:项目->android 开发类模式->最下面的Gradle Scripts 里面就是用到的所有 的架包;如果有重复的就想办法去掉 就可以了。(其中value中的strings也可能出现重复的定义名称。)
8:Browser.BookmarkColumns 类似引用报错 ;
解决方案:使用低版本的SDK 即可; 若果是两个项目相互依赖并且一个要求是低版本的;一个要求是高版本的,那么只能牺牲一个的处理兼容的逻辑了。暂时还没有找到好的方式能两者都能兼容的。
9:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme
解决方式:修改 改对应Activity 对应的theme 属性 即可;做好的方式是在 styles.xml中配置使用; 或者例如: android:theme=”@style/Theme.AppCompat.Light.NoActionBar” 。如果不是那么强烈需要继承自ActionBarActivity,就直接继承Activity吧。就ok了。
问题的原因:
从错误提示中提到Theme.AppCompat theme,这是因为我们的activity一定是继承了兼容包中的类,
比如我这里就无意中继承了ActionBarActivity,它来自android.support.v7.app.ActionBarActivity。
所以就要使用与其配合的AppCompat的theme才行。