Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-加载Java上生成的动态JAR文件_Java_Android_Class_Loading - Fatal编程技术网

Android-加载Java上生成的动态JAR文件

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文件(

我想在Android应用程序上以友好的方式加载Java类

我有.jar文件,我可以使用命令dx在该jar上创建.dex文件。那么,我如何使用它们在Android应用程序中加载我需要的类呢? 我会像这样使用它们:

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