dex loader加载的类的可见性问题

时间:2017-01-16 18:19:49

标签: java android reflection classloader dex

我有两个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的类加载器中的类可见?

提前致谢

0 个答案:

没有答案