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中设置:

false
true即可。

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

你可能感兴趣的:(Android Studio踩坑)