Android4.4以前版本dex拆分

gyllhh 2017-12-13 11:53:00
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.demo.ApplicationUser" on path: DexPathList[[zip file "/data/app/comexample.demo-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.demo-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.Instrumentation.newApplication(Instrumentation.java:975)
at android.app.LoadedApk.makeApplication(LoadedApk.java:502)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4311) 
at android.app.ActivityThread.access$1500(ActivityThread.java:139) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1260) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5011) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:832) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:648) 
at dalvik.system.NativeStart.main(Native Method) 
com.example.demo.ApplicationUser 是在classes2.dex,怎么把ApplicationUser 放到classes.dex中
使用这种方法没有作用afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
def listMain = project.rootDir.absolutePath+'/app/manifest_keep.txt'
if (dx.additionalParameters == null) {
dx.additionalParameters = []
}
//改变dex方法数上线为50000,超过后进行拆分
dx.additionalParameters += '--set-max-idx-number=50000'
//方法数越界时则生成多个dex文件
dx.additionalParameters += '--multi-dex'
//maindexlist.txt文件为主dex中的类型配置文件
dx.additionalParameters += '--main-dex-list=' + listMain
//-main-dex-list指定的所有class会打包到主dex中
dx.additionalParameters += '--minimal-main-dex'
}
}

manifest_keep.txt文件设置为
com/example/demo/ApplicationUser.class
android/support/multidex/MultiDex.class
android/support/multidex/MultiDexApplication.class
android/support/multidex/MultiDexExtractor.class
android/support/multidex/MultiDexExtractor$1.class
android/support/multidex/MultiDex$4.class
android/support/multidex/MultiDex$14.class
android/support/multidex/MultiDex$19.class
android/support/multidex/ZipUtil.class
android/support/multidex/ZipUtil$CentralDirectory.class

请大神帮忙解决一下,给个建议!!!
...全文
143 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklwan 2017-12-13
  • 打赏
  • 举报
回复
官方文档,你配置这些没用,只需要在buildType中配置主dex就行了

buildTypes {
     release {
         multiDexKeepFile file 'manifest_keep.txt'
         ...
    }
    ........
}

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧