Java 在使用反射的库项目中找不到类
我正在将一个库项目(.aar)文件添加到DemoProject中,其中库项目在内部使用反射 但是DemoProject为反射类显示Java 在使用反射的库项目中找不到类,java,android,classnotfoundexception,Java,Android,Classnotfoundexception,我正在将一个库项目(.aar)文件添加到DemoProject中,其中库项目在内部使用反射 但是DemoProject为反射类显示classNotFound Stacktrace Suppressed: java.lang.ClassNotFoundException: com.coderconsole.phoneUtils at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClas
classNotFound
Stacktrace
Suppressed: java.lang.ClassNotFoundException: com.coderconsole.phoneUtils
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
代码:
在libraryproject内使用时引发异常,否则其工作正常
非常感谢您的帮助。出现此问题的原因可能不多:1。库可能真的没有这个类2。您可能使用了错误的类加载器3。您可能错误地添加了dependarcy 4。库aar可能与ProGuard混淆,后者重命名类。@VladMatvienko谢谢1。这是我的礼物,我已经过了3号支票。依赖关系是正确的,因为其他类工作正常4。库处于调试模式。你的观点“2”很有趣。我怎么知道正确的类加载器呢?嗯,您可以尝试使用
Class.forName(“com.coderconsole.phoneUtils”,SomeYourClass.Class.getClassLoader())代码>。我不确定它是否会起作用,但你至少可以试试。弗拉德·马特维延科这件事在正常的项目中是可行的,但在图书馆项目中失败了。虽然上面的太唐突了;行不通
try {
return Class.forName("com.coderconsole.phoneUtils");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}