简书链接:谈谈android44multidexnoclassdeffounderror的问题(不是网上那种设置就可以解决的)
文章字数:429,阅读全文大约需要1分钟
按理说
1
| compile 'com.android.support:multidex:1.0.1'
|
以及继承自定义application
并复写自定义Application中的attachBaseContext
是可以解决问题的
1 2 3 4 5 6
| protected void attachBaseContext(Context base) { super.attachBaseContext(base);
MultiDex.install(this); }
|
然而并不行,有人说要clearn project了,实际上也是浪费时间并不能解决
欲知如何解决,请关注我的微博qssq666
那么延伸出来的问题
如何使用高级gradle写法,在build.gradle里面进行判断如果是4.4就自动关闭即时运行,我觉得非常需要这个功能,很多时候4.4的即时运行会有bug
.至少,我编写xposed插件也会遇到很多问题。
1 2 3 4 5 6 7
| https://github.com/casidiablo/multidex https://stackoverflow.com/questions/26655541/multidex-noclassdeffound-error https://blog.csdn.net/richie0006/article/details/51103976 https://blog.csdn.net/qq_30552993/article/details/75355492 http://www.cnblogs.com/wingyip/p/4496028.html https://blog.csdn.net/t12x3456/article/details/40837287
|
尝试过如下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> if (dx.additionalParameters == null) { dx.additionalParameters = [] } dx.additionalParameters += '--multi-dex' dx.additionalParameters += "--main-dex-list=$projectDir/multiDexKeep.txt".toString() } }
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith("multidex") && !requested.name.startsWith("exifinterface")) { details.useVersion '26.1.0' //不设置24.2.1但是设置到了25就找不到布局,全部不管好像又冲突设置24.2.1 那么 要么冲突 要么 java.lang.NoSuchFieldError: No field notification_template_lines of type } } } }
|
语法呢
1 2 3 4 5 6 7 8 9 10 11 12
| android/support/multidex/BuildConfig/class android/support/multidex/MultiDex$V14/class android/support/multidex/MultiDex$V19/class android/support/multidex/MultiDex$V4/class android/support/multidex/MultiDex/class android/support/multidex/MultiDexApplication.class com/buyao/tv/activity/ErrorActivity/class android/support/multidex/MultiDexExtractor$1/class android/support/multidex/MultiDexExtractor/class android/support/multidex/ZipUtil$CentralDirectory/class android/support/multidex/ZipUtil/class
|
所以正缺语法是
1 2 3 4 5 6 7 8 9 10 11 12
| android/support/multidex/BuildConfig.class android/support/multidex/MultiDex$V14.class android/support/multidex/MultiDex$V19.class android/support/multidex/MultiDex$V4.class android/support/multidex/MultiDex.class android/support/multidex/MultiDexApplication.class com/buyao/tv/activity/ErrorActivity.class android/support/multidex/MultiDexExtractor$1.class android/support/multidex/MultiDexExtractor.class android/support/multidex/ZipUtil$CentralDirectory.class android/support/multidex/ZipUtil.class com/buyao/tv/bean/ContentDBModel.class
|
如何得知?
C:\speed\project\aaaa\app\build\intermediates\multi-dex\debug\maindexlist.txt 这里面有参考文件
可以参考对比一下,实际上语法是最后面是.class 某些教程有毛病吧,另外问题有没有解决呢?没有,运行时关闭之后重新编译依然不能解决问题,但是打包之后就可以,所以估计时我还需要清除无效缓存,总之吧as太jb操蛋了。