Unable to get provider
See original GitHub issueHello, first of all, thanks you for your good work!
I just followed multiple times the installation guide, and I double-checked this by comparing to the testapp, I can’t start my application with RemotePreferences because of a problem with provider.
In Manifest.xml:
<provider
android:authorities="com.myapp.test.preferences"
android:name=".MyPreferenceProvider"
android:exported="true" />
In Java/com.myapp.test folder, MyPreferenceProvider Class:
public class MyPreferenceProvider extends RemotePreferenceProvider {
public MyPreferenceProvider() {
super("com.myapp.test.preferences", new String[] {"test"});
}
}
And when I compile it:
java.lang.RuntimeException: Unable to get provider com.myapp.test.MyPreferenceProvider: java.lang.ClassNotFoundException: Didn't find class "com.myapp.test.MyPreferenceProvider" on path
… blablabla
I’m sure that’s a easy fix but I can’t find on internet a solution for this particular problem with your library. If you need any other information, I can give it to you. Thanks you for helping me and have a good day!
EDIT: I think it’s comes from Xposed, i’m using the v90-beta3 and the first errors logs after ClassNotFoundException
is at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:361)
Complete error:
2021-01-17 02:07:07.810 10188-10188/com.myapp.test E/AndroidRuntime: FATAL EXCEPTION: main Process: com.myapp.test, PID: 10188 java.lang.RuntimeException: Unable to get provider com.myapp.test.MyPreferenceProvider: java.lang.ClassNotFoundException: Didn't find class "com.myapp.test.MyPreferenceProvider" on path: DexPathList[[zip file "/data/app/com.myapp.test-uibVPddJ9zeWqq_LXlkdFg==/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp.test-uibVPddJ9zeWqq_LXlkdFg==/lib/x86, /system/lib, /system/vendor/lib]] at android.app.ActivityThread.installProvider(ActivityThread.java:6288) at android.app.ActivityThread.installContentProviders(ActivityThread.java:5851) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5772) at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:361) at android.app.ActivityThread.handleBindApplication(<Xposed>) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:108) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.testapp.test.MyPreferenceProvider" on path: DexPathList[[zip file "/data/app/com.testapp.test-uibVPddJ9zeWqq_LXlkdFg==/base.apk"],nativeLibraryDirectories=[/data/app/com.testapp.test-uibVPddJ9zeWqq_LXlkdFg==/lib/x86, /system/lib, /system/vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.ActivityThread.installProvider(ActivityThread.java:6273) at android.app.ActivityThread.installContentProviders(ActivityThread.java:5851) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5772) at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:361) at android.app.ActivityThread.handleBindApplication(<Xposed>) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:108) Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/crossbowffs/remotepreferences/RemotePreferenceProvider; at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738) at java.lang.ClassLoader.loadClass(ClassLoader.java:363) ... 16 more Caused by: java.lang.ClassNotFoundException: Didn't find class "com.crossbowffs.remotepreferences.RemotePreferenceProvider" on path: DexPathList[[zip file "/data/app/com.testapp.test-uibVPddJ9zeWqq_LXlkdFg==/base.apk"],nativeLibraryDirectories=[/data/app/com.testapp.test-uibVPddJ9zeWqq_LXlkdFg==/lib/x86, /system/lib, /system/vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 19 more
Issue Analytics
- State:
- Created 3 years ago
- Comments:9 (4 by maintainers)
Ok I just found it:
In my build.gradle (app) I was using this line:
compileOnly 'com.crossbowffs.remotepreferences:remotepreferences:0.7'
I just replace it by:
implementation 'com.crossbowffs.remotepreferences:remotepreferences:0.7'
Like I said i’m really a beginner at Android Development and Xposed and I didn’t know that we have to use
implementation
instead ofcompileOnly
that I have to use for XposedThanks you for your help, and for your useful library 😃
Ah, I didn’t realize the readme is still using the deprecated
compile
directive (rolls eyes)… Yeahcompile
translates toimplementation
, notcompileOnly
(who thought that was a good idea?!) Let me fix that, sorry about the confusion!