Android Studio踩坑

1、今天在升级了AS2.0后,运行iyuba项目竟然爆出了1500多个错误!(内心崩溃的)
 拉到最后一行,错误提示:

Android Studio XXX causing GC overhead limit exceeded error

StackOverflow解决
 I think there's a separate way to raise the heap limit of the dexing operation. Add this to your android closure in your build.gradle file:

dexOptions {
    javaMaxHeapSize "4g"
}

 再次执行,还是报错,不过这次只报一个错误了:

Android Studio Error:Execution failed for task ':iyuba:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process finished with non-zero exit value 2

 总的分析来说,应该是项目中的总文件数超过了65K的限制了。下面采用插件化机制multidex,首先在iyuba和lib的build.gradle文件的dependencies中添加:

compile 'com.android.support:multidex:1.0.0'

并在iyuba的build.gradle文件中添加:

defaultConfig{    
  multiDexEnabled true
}

注意不要在lib的build.gradle文件添加!

 这时执行还是有错误:

Android Studio duplicate entry: android/support/multidex/MultiDex$V19.class

 项目Clean了一遍之后这个错误就消失了,又出现了新的错误:

Gradle Duplicate Entry: java.util.zip.ZipException :duplicate entry: android/support/annotation/IntegerRes.class

 因为这里有support包的问题,怀疑是本地的support包或者其他有两个module使用的jar包中的方法引起的冲突,因为使用了Multidex的原因。然后将Project中的所有Module一一排查,只用一次的jar包可以直接引用本地的,其他可能多次引用的jar包一律使用在线的。如此折腾完一番,问题比较明确了。然后发现有support-v4包的冲突,actionbarSherlock、SlidingMenu统统注掉,基本问题少了很多,只剩下最后一个坑,AS的应用运行按钮旁边的应用名字上一直显示个红叉,说是找不到Default Activity,自己手动指定一下就可以了。至此,程序基本上可以运行了,再次泪流满面!

 最后一个小点,如果想让应用中的ActionBar和Title不显示,在styles.xml文件中,Application中调用的Theme中设置:

<item name = "android:windowActionBar">false</item>
<item name = "android:windowNoTitle">true</item>即可。

愉快而又充满了坑的一天!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容