我有两个Android应用程序A和B.我想生成应用程序B的DEX并在运行时通过DexClassLoader将其动态加载到应用程序A.在应用程序B中,我主要有两个应用程序A使用的类。
但是,我在第一个应用程序中所需类的可见性方面存在问题。
这可以通过以下方式说明:
final DexClassLoader dexClassLoader = new DexClassLoader(file.getAbsolutePath(), optDexDir.getAbsolutePath(), libsPath, ClassLoader.getSystemClassLoader());
Class<?> classToLoad = dexClassLoader.loadClass(completeClassNameOfA);
final Object instance = classToLoad.newInstance();
Method methodToLoad = classToLoad.getMethod(methodNameOfClassA, ClassLoader.class);
methodToLoad.invoke(instance, context.getClassLoader());
在我在app B中调用的方法中,我尝试在A的给定类加载器中找到类,我通过以下参数传递:
appAClassLoader.loadClass(AppBSecondClass.class.getName());
显然会导致NoClassDefFound异常。
有没有办法让应用程序A的类加载器中的类可见?
提前致谢