【问题标题】:Xposed Not Loading my module, ClassNotFoundExceptionXposed 未加载我的模块,ClassNotFoundException
【发布时间】:2016-05-04 14:40:03
【问题描述】:

我正在开发一个 Xposed 模块,作为 FatMinMin 的 minminHide module 的扩展,这似乎也是一个很好的开发练习 :) 问题是,在启动期间,当我检查 xposed 日志时,我得到以下信息:

5-04 17:06:44.305 I/Xposed  (581): Loading modules from /data/app/xposed.sudocode.com.sudohide-1/base.apk
05-04 17:06:44.325 I/Xposed  (581):   Loading class xposed.sudocode.com.sudohide.XposedMain
05-04 17:06:44.326 E/Xposed  (581): java.lang.ClassNotFoundException: Didn't find class "xposed.sudocode.com.sudohide.XposedMain" on path: DexPathList[[zip file "/data/app/xposed.sudocode.com.sudohide-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
05-04 17:06:44.326 E/Xposed  (581):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
05-04 17:06:44.326 E/Xposed  (581):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
05-04 17:06:44.326 E/Xposed  (581):     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
05-04 17:06:44.326 E/Xposed  (581):     at de.robv.android.xposed.XposedBridge.loadModule(XposedBridge.java:497)
05-04 17:06:44.326 E/Xposed  (581):     at de.robv.android.xposed.XposedBridge.loadModules(XposedBridge.java:457)
05-04 17:06:44.326 E/Xposed  (581):     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:122)
05-04 17:06:44.326 E/Xposed  (581):     Suppressed: java.lang.ClassNotFoundException: Didn't find class "xposed.sudocode.com.sudohide.XposedMain" on path: DexPathList[[zip file "/system/framework/XposedBridge.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
05-04 17:06:44.326 E/Xposed  (581):         at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
05-04 17:06:44.326 E/Xposed  (581):         at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
05-04 17:06:44.326 E/Xposed  (581):         at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
05-04 17:06:44.326 E/Xposed  (581):         ... 4 more
05-04 17:06:44.326 E/Xposed  (581):         Suppressed: java.lang.ClassNotFoundException: xposed.sudocode.com.sudohide.XposedMain
05-04 17:06:44.326 E/Xposed  (581):             at java.lang.Class.classForName(Native Method)
05-04 17:06:44.326 E/Xposed  (581):             at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
05-04 17:06:44.326 E/Xposed  (581):             at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
05-04 17:06:44.326 E/Xposed  (581):             at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
05-04 17:06:44.326 E/Xposed  (581):             ... 5 more
05-04 17:06:44.326 E/Xposed  (581):         Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

这意味着 Xposed 无法正确加载我的模块

在 xposed_init 文件中,我有以下内容:

xposed.sudocode.com.sudohide.XposedMain

我还在依赖中添加了xposed bridge api:

dependencies {
    provided files('libs/api-82.jar')
    compile 'com.android.support:appcompat-v7:23.3.0'
}

这是我的 Class java 文件的开头:

package xposed.sudocode.com.sudohide;


import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.ResolveInfo;
import android.os.Binder;

import java.util.ArrayList;
import java.util.List;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.IXposedHookZygoteInit;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XSharedPreferences;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class XposedMain implements IXposedHookZygoteInit, IXposedHookLoadPackage {

任何人都可以就如何继续提供任何形式的建议,我试图寻找解决方案但我找不到任何解决方案,也没有在 xposed 文档中找到任何内容

谢谢!

【问题讨论】:

    标签: java android xposed-framework xposed


    【解决方案1】:

    只需禁用Instant Run

    文件 -> 设置 -> 构建、执行、部署 -> 即时运行

    否则您的类不会直接包含在 APK 中,而是通过 Xposed 无法处理的存根应用程序加载。

    【讨论】:

      【解决方案2】:

      解决了问题! 问题在于 android studio 上的即时运行,它在 /data/local/tmp/ 中安装应用程序,而 xposed 没有在该路径中找到类。

      现在我将 apk 推送到设备并从存储安装

      【讨论】:

        【解决方案3】:

        尝试将 xposed api jar 放在 libs 目录(例如项目的根目录)之外并修复 gradle 配置文件。

        【讨论】:

        • 您好,感谢您抽出宝贵的时间,我试过了,不幸的是它没有用
        • 你使用proguard吗?
        • 我很确定没有,但如何检查以防万一?
        【解决方案4】:

        就我而言,我忘记添加 assets 文件夹,其中包含:xposed_init(没有扩展名)

        其中还包含:the.package.name.XposedClassWhereYouHookedStuff

        例如:com.example.sampleapp.xposedclass

        在目录中:AppName/app/src/main/assets

        我还禁用了即时运行

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-30
          • 1970-01-01
          • 2018-08-28
          • 1970-01-01
          • 2015-03-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多