谈谈android 4.4 multidex-noclassdeffound-error的问题(不是网上那种设置就可以解决的)...

按理说

multiDexEnabled true
compile 'com.android.support:multidex:1.0.1'

以及继承自定义application
并复写自定义Application中的attachBaseContext是可以解决问题的

protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);

        MultiDex.install(this);
    }

然而并不行,有人说要clearn project了,实际上也是浪费时间并不能解决

欲知如何解决,请关注我的微博qssq666

那么延伸出来的问题

如何使用高级gradle写法,在build.gradle里面进行判断如果是4.4就自动关闭即时运行,我觉得非常需要这个功能,很多时候4.4的即时运行会有bug
.至少,我编写xposed插件也会遇到很多问题。

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

尝试过如下代码

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
            }
        }
    }
}

语法呢

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

所以正缺语法是

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操蛋了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值