alibaba / atlas

A powerful Android Dynamic Component Framework.
Apache License 2.0
8.12k stars 1.47k forks source link

[demo]:动态部署失败 FileNotFoundException #330

Closed hf529270451 closed 5 years ago

hf529270451 commented 5 years ago

动态部署生成了tpach和update.json 导入到了 sd卡中. 点击动态部署按钮Demo直接崩溃。 报错: Warm 级别: 2018-12-17 11:30:57.025 1953-5547/? W/System.err: java.io.FileNotFoundException: /acct/uid_10421/pid_4429/cgroup.procs (No such file or directory) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at java.io.FileInputStream.open0(Native Method) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at java.io.FileInputStream.open(FileInputStream.java:200) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at java.io.FileInputStream.(FileInputStream.java:150) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at java.io.FileInputStream.(FileInputStream.java:103) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.miui.server.PerfShielderService.setForkedProcessGroup(PerfShielderService.java:217) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ExtraActivityManagerService.setForkedProcessGroup(ExtraActivityManagerService.java:1267) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActivityManagerServiceInjector.setForkedProcessGroup(ActivityManagerServiceInjector.java:1012) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActivityManagerService.applyOomAdjLocked(ActivityManagerService.java:22789) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActivityManagerService.updateOomAdjLocked(ActivityManagerService.java:23410) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActiveServices.realStartServiceLocked(ActiveServices.java:2357) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActiveServices.attachApplicationLocked(ActiveServices.java:2987) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:7439) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:7494) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:292) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3016) 2018-12-17 11:30:57.026 1953-5547/? W/System.err: at android.os.Binder.execTransact(Binder.java:702)

error级别: java.lang.NoClassDefFoundError: Failed resolution of: Lio/reactivex/Observable; at com.taobao.atlas.dexmerge.MergeExcutorServices.excute(MergeExcutorServices.java:43) at com.taobao.atlas.dexmerge.DexMergeService$1.dexMerge(DexMergeService.java:29) at com.taobao.atlas.dexmerge.IDexMergeBinder$Stub.onTransact(IDexMergeBinder.java:57) at android.os.Binder.execTransact(Binder.java:702) Caused by: java.lang.ClassNotFoundException: Didn't find class "io.reactivex.Observable" on path: DexPathList[[zip file "/data/app/com.taobao.demo-6-V9dvpHR9c1aeGV-q-OYg==/base.apk"],nativeLibraryDirectories=[/data/app/com.taobao.demo-6-V9dvpHR9c1aeGV-q-OYg==/lib/arm, /data/app/com.taobao.demo-6-V9dvpHR9c1aeGV-q-OYg==/base.apk!/lib/armeabi, /system/lib, /vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at com.taobao.atlas.dexmerge.MergeExcutorServices.excute(MergeExcutorServices.java:43)  at com.taobao.atlas.dexmerge.DexMergeService$1.dexMerge(DexMergeService.java:29)  at com.taobao.atlas.dexmerge.IDexMergeBinder$Stub.onTransact(IDexMergeBinder.java:57)  at android.os.Binder.execTransact(Binder.java:702) 

hf529270451 commented 5 years ago

我的执行过程是: 1 gradlew clean assembleDebug 生成apk 2 gradlew publish 3 adb install apk 4 修改firstBundle中代码 修改firstBundle/build.gradle中的 version 5 ../gradlew clean assembleDebug -DapVersion=1.0.0 -DversionName=1.0.1

  1. push 生成的.tpatch 和update.json
  2. 点击红色按钮 之后就闪退报错了
hwjump commented 5 years ago

看起来是你打包的时候 atlas-update模块依赖的 rxjava这个库没打进去

hf529270451 commented 5 years ago

已解决 多谢多谢 以下是我的解决方法:

ext {
   // lib_atlas_core = "com.taobao.android:atlas_core:5.1.0.8-RC1@arr"
    lib_atlas_core = "com.taobao.android:atlas_core:5.1.0.8-RC1"
  //lib_atlas_update = "com.taobao.android:atlasupdate:1.1.4.22-rc7@aar"
    lib_atlas_update = "com.taobao.android:atlasupdate:1.1.4.22-rc7"
}