Xposed Not Loading my module, ClassNotFoundException

5.8k Views Asked by At

I am developing an Xposed module, as an expansion of FatMinMin's minminHide module also it seems like a good dev exercise as well :) The issue is that during boot when I check the xposed log i get the below:

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

which means that Xposed was not able to load my module properly

In the xposed_init file I have the following:

xposed.sudocode.com.sudohide.XposedMain

I also added the xposed bridge api in the dependency:

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

This is The beginning of my Class java file:

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 {

Can anyone please provide any form of advice on how to proceed, I attempted to search for a solution but I could not find any, nor did I find anything in the xposed documentation

Thanks!

4

There are 4 best solutions below

0
On BEST ANSWER

Solved the Issue! The issue was with the instant run on android studio, it was installing the app in /data/local/tmp/ and xposed was not finding the class in that path.

Now I push the apk to the device and install from storage

3
On

Try put xposed api jar outside libs dir (root of your project, for example) and fix gradle config file.

0
On

Just disable Instant Run

File -> Settings -> Build, Execution, Deployment -> Instant Run

Otherwise your classes aren't included directly in the APK, but loaded via a stub application which Xposed can't handle.

0
On

In my case, I forgot to add the assets folder that contained: xposed_init (has no extension)

that also contained: the.package.name.XposedClassWhereYouHookedStuff

for example: com.example.sampleapp.xposedclass

in the directory: AppName/app/src/main/assets

s

and i also Disable Instant Run