app中如果存在一个和系统中同名的jar包,在执行的时候会使用系统的jar,下面的crash就是在系统的jar中没有找到相应的方法,出现的AndroidRuntime异常
01-14 16:23:48.484 3969 3969 E AndroidRuntime: Process: com.example.testapp, PID: 3969
01-14 16:23:48.484 3969 3969 E AndroidRuntime: java.lang.NoSuchMethodError: No interface method setData(ILandroid/os/ParcelFileDescriptor;)I in class Lcom/test/ITestManager; or its super classes (declaration of 'com.test.ITestManager' appears in /system/framework/miscmdm.jar)
在 Android 系统中,“系统中的 JAR 覆盖 App 中的同名 JAR” 这种说法并不完全准确,需要从 Android 的类加载机制、系统类库和应用类路径的设计来理解其背后的原理。
简单来说:不是“覆盖”,而是系统类优先加载,应用无法重新定义系统已提供的类。
一、Android 的类加载机制
Android 使用的是

最低0.47元/天 解锁文章
1904

被折叠的 条评论
为什么被折叠?



