Meituan-Dianping / Robust

Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Apache License 2.0
4.42k stars 807 forks source link

PatchesInfoImpl class not found #187

Closed mr-xia closed 7 years ago

mr-xia commented 7 years ago

异常类型:PatchesInfoImpl class not found

手机型号:如:小米 5 手机系统版本:如:Android 7.0

Robust版本:如:0.4.7

Gradle版本:如:3.3

系统:win7

在我写的demo中一直都报PatchesInfoImpl class not found,我没有用混淆。 下面是部分代码: PatchManipulateImp.java:

public class PatchManipulateImp extends PatchManipulate { /**

robust.xml: <?xml version="1.0" encoding="utf-8"?>

true false false true true false true com.xxs.practicedemo com.meituan.robust com.meituan.sample.extension com.xxs.practicedemo.patch

app下的bulid.gradle的头部: apply plugin: 'com.android.application' //apply plugin: 'auto-patch-plugin' apply plugin: 'robust'

每次加载补丁的时候都会报错: PatchsInfoImpl failed,cause ofjava.lang.ClassNotFoundException: Didn't find class "com.xxs.practicedemo.patch.PatchesInfoImpl" on path: DexPathList[[zip file "/storage/emulated/0/robust/patch_temp.jar"],nativeLibraryDirectories=[/system/lib64, /vendor/lib64]] 而打印的日志显示补丁文件meituan.jar确实存在,我用jadx-gui打开补丁文件也确实存在com.xxs.practicedemo.patch.PatchesInfoImpl.java这个类。

请问我哪里写错了吗?

hedex commented 7 years ago

PatchsInfoImpl failed,cause ofjava.lang.ClassNotFoundException: Didn't find class 你改了这个"com.xxs.practicedemo.patch.PatchesInfoImpl" ,还原试试?

mr-xia commented 7 years ago

还原成了com.meituan.robust.patch还是不行。。。。。

hedex commented 7 years ago

你检查一下你的git commit,看看还有没有相关的改动

2017年8月11日 16:11,"mr-xia" notifications@github.com写道:

还原成了com.meituan.robust.patch还是不行。。。。。

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Meituan-Dianping/Robust/issues/187#issuecomment-321753778, or mute the thread https://github.com/notifications/unsubscribe-auth/AHgyAS9QnjIIku5Nb1boPPQVSDEBxoutks5sXAycgaJpZM4O0VlP .

mr-xia commented 7 years ago

git commit这怎么检查?

hedex commented 7 years ago

可以看看你当前的代码吗?

zaihuishou commented 7 years ago

围观,我也是类找不到

08-14 18:08:53.197 25053-25590/org.gaia.supplier I/icon_receipt: patch.jar 路径 /storage/emulated/0/gaia/patch.jar
08-14 18:08:53.198 25053-25590/org.gaia.supplier W/System: ClassLoader referenced unknown path: null_temp.jar
08-14 18:08:53.200 25053-25590/org.gaia.supplier W/System.err: java.lang.ClassNotFoundException: Didn't find class "com.meituan.robust.patch.PatchesInfoImpl" on path: DexPathList[[],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
08-14 18:08:53.200 25053-25590/org.gaia.supplier W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
08-14 18:08:53.200 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-14 18:08:53.201 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
08-14 18:08:53.201 25053-25590/org.gaia.supplier W/System.err:     at com.meituan.robust.PatchExecutor.patch(Unknown Source)
08-14 18:08:53.201 25053-25590/org.gaia.supplier W/System.err:     at com.meituan.robust.PatchExecutor.applyPatchList(Unknown Source)
08-14 18:08:53.201 25053-25590/org.gaia.supplier W/System.err:     at com.meituan.robust.PatchExecutor.run(Unknown Source)
08-14 18:08:53.201 25053-25590/org.gaia.supplier W/System.err:  Suppressed: java.lang.ClassNotFoundException: Didn't find class "com.meituan.robust.patch.PatchesInfoImpl" on path: DexPathList[[zip file "/data/app/org.gaia.supplier-1/base.apk"],nativeLibraryDirectories=[/data/app/org.gaia.supplier-1/lib/arm, /data/app/org.gaia.supplier-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
08-14 18:08:53.202 25053-25590/org.gaia.supplier W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
08-14 18:08:53.202 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-14 18:08:53.202 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
08-14 18:08:53.202 25053-25590/org.gaia.supplier W/System.err:      ... 4 more
08-14 18:08:53.202 25053-25590/org.gaia.supplier W/System.err:      Suppressed: java.lang.ClassNotFoundException: com.meituan.robust.patch.PatchesInfoImpl
08-14 18:08:53.203 25053-25590/org.gaia.supplier W/System.err:     at java.lang.Class.classForName(Native Method)
08-14 18:08:53.203 25053-25590/org.gaia.supplier W/System.err:     at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
08-14 18:08:53.203 25053-25590/org.gaia.supplier W/System.err:     at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
08-14 18:08:53.203 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
08-14 18:08:53.203 25053-25590/org.gaia.supplier W/System.err:          ... 5 more
08-14 18:08:53.204 25053-25590/org.gaia.supplier W/System.err:      Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
08-14 18:08:53.204 25053-25590/org.gaia.supplier I/icon_receipt:  robust arrived in exceptionNotify class:PatchExecutor method:patch line:108
08-14 18:08:53.204 25053-25590/org.gaia.supplier E/robust: PatchsInfoImpl failed,cause ofjava.lang.ClassNotFoundException: Didn't find class "com.meituan.robust.patch.PatchesInfoImpl" on path: DexPathList[[],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
08-14 18:08:53.204 25053-25590/org.gaia.supplier W/System.err: java.lang.ClassNotFoundException: Didn't find class "com.meituan.robust.patch.PatchesInfoImpl" on path: DexPathList[[],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
08-14 18:08:53.204 25053-25590/org.gaia.supplier W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
08-14 18:08:53.204 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-14 18:08:53.204 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
08-14 18:08:53.204 25053-25590/org.gaia.supplier W/System.err:     at com.meituan.robust.PatchExecutor.patch(Unknown Source)
08-14 18:08:53.205 25053-25590/org.gaia.supplier W/System.err:     at com.meituan.robust.PatchExecutor.applyPatchList(Unknown Source)
08-14 18:08:53.205 25053-25590/org.gaia.supplier W/System.err:     at com.meituan.robust.PatchExecutor.run(Unknown Source)
08-14 18:08:53.205 25053-25590/org.gaia.supplier W/System.err:  Suppressed: java.lang.ClassNotFoundException: Didn't find class "com.meituan.robust.patch.PatchesInfoImpl" on path: DexPathList[[zip file "/data/app/org.gaia.supplier-1/base.apk"],nativeLibraryDirectories=[/data/app/org.gaia.supplier-1/lib/arm, /data/app/org.gaia.supplier-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
08-14 18:08:53.205 25053-25590/org.gaia.supplier W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
08-14 18:08:53.205 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-14 18:08:53.205 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
08-14 18:08:53.206 25053-25590/org.gaia.supplier W/System.err:      ... 4 more
08-14 18:08:53.206 25053-25590/org.gaia.supplier W/System.err:      Suppressed: java.lang.ClassNotFoundException: com.meituan.robust.patch.PatchesInfoImpl
08-14 18:08:53.206 25053-25590/org.gaia.supplier W/System.err:     at java.lang.Class.classForName(Native Method)
08-14 18:08:53.206 25053-25590/org.gaia.supplier W/System.err:     at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
08-14 18:08:53.206 25053-25590/org.gaia.supplier W/System.err:     at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
08-14 18:08:53.207 25053-25590/org.gaia.supplier W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
08-14 18:08:53.207 25053-25590/org.gaia.supplier W/System.err:          ... 5 more
08-14 18:08:53.207 25053-25590/org.gaia.supplier W/System.err:      Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
mr-xia commented 7 years ago

@hedex 你要看那个文件的代码?

mr-xia commented 7 years ago

@zaihuishou 我的报错和你一样......

dovefairy commented 5 years ago

楼主我也是,问题怎么解决的?

SolareCoding commented 5 years ago

楼主我也是,问题怎么解决的?

看一下是不是没有把patch拷贝到app私有目录下,注意官方Demo里PatchManipulateImp类里verifyPatch()函数的实现。 我是这么解决的,不知道能不能帮到你。