Android-加载Java上生成的动态JAR文件
我想在Android应用程序上以友好的方式加载Java类 我有.jar文件,我可以使用命令dx在该jar上创建.dex文件。那么,我如何使用它们在Android应用程序中加载我需要的类呢? 我会像这样使用它们:Android-加载Java上生成的动态JAR文件,java,android,class,loading,Java,Android,Class,Loading,我想在Android应用程序上以友好的方式加载Java类 我有.jar文件,我可以使用命令dx在该jar上创建.dex文件。那么,我如何使用它们在Android应用程序中加载我需要的类呢? 我会像这样使用它们: DynamicLoadedClassJar obj = new DynamicLoadedClassInJar() ... DynamicLoadedClassInJar obj = (DynamicLoadedClassInJar) ... 我只有.jar文件,可以生成.dex文件(
DynamicLoadedClassJar obj = new DynamicLoadedClassInJar()
...
DynamicLoadedClassInJar obj = (DynamicLoadedClassInJar) ...
我只有.jar文件,可以生成.dex文件(但我不知道如何使用它们)。
你能给我一段代码吗?谢谢以下是如何加载jar并对其任何类调用方法
URLClassLoader child = new URLClassLoader(jarPath.toURL(), this.getClass().getClassLoader());
Class classToLoad = Class.forName("yourPackage.yourClass", true, child);
Method method = classToLoad.getDeclaredMethod("myMethod");
Object instance = classToLoad.newInstance();
Object result = method.invoke(instance);
请注意,您所描述的内容违反了Play Store developer分发规则,该规则禁止这种动态代码加载(代码不是来自Play Store本身)。我知道,我不想发布这种内容。这是供个人使用的。它应该工作得很理想。如果您的har由一个dex文件组成,您可能希望使用DexClassLoader,而不是使用DexClassLoader。我如何使用这种方法来强制转换对象,而不知道类的名称,而是由类实现的接口?锿。在Jar中,我有
类A实现Int
,在使用类加载器之后,我怎么做intA=(Int)obj
?