URLClassLoader在Java上工作,但在Android上不工作

URLClassLoader在Java上工作,但在Android上不工作,android,classnotfoundexception,urlclassloader,Android,Classnotfoundexception,Urlclassloader,我的URLClassLoader实现似乎只在pc上运行,但在Android上不起作用 try { Class<?> loadedClass = new URLClassLoader( new URL[] { new File("http://10.0.2.2/myphpfile.php").toURI().toURL() }) .loadClass("MyClass"); IInter

我的URLClassLoader实现似乎只在pc上运行,但在Android上不起作用

try {

        Class<?> loadedClass = new URLClassLoader(
                new URL[] { new File("http://10.0.2.2/myphpfile.php").toURI().toURL() })
                .loadClass("MyClass");

        IInterface inter = (IInterface) loadedClass.getConstructor(
                String.class).newInstance("Hello");
        if (inter != null)
            System.out.println(inter.doSomething(2));
    } catch (Exception e) {
        e.printStackTrace();
    }
试试看{
Class loadedClass=新的URLClassLoader(
新URL[]{新文件(“http://10.0.2.2/myphpfile.php“”.toURI().toURI()})
.loadClass(“MyClass”);
IInterface inter=(IInterface)loadedClass.getConstructor(
newInstance(“Hello”);
if(inter!=null)
系统输出打印LN(内部剂量测量(2));
}捕获(例外e){
e、 printStackTrace();
}
它只是工作得很好,但在安卓系统上我得到了

java.lang.ClassNotFoundException:MyClass

已设置Internet权限

有人知道如何让它工作吗?

使用而不是URLClassLoader

首先,您需要jar文件包含classes.dex,其中包括:

然后,您只需将URLClassLoader替换为DexClassLoader,并以相同的方式继续:

File jarFile = new File("/data/JarProjectWithDex.jar");
DexClassLoader loader = new DexClassLoader(jarFile.getPath(), getFilesDir().getPath(), null, this.getClassLoader());
Class<?> classToLoad = Class.forName("zordon.MegaZords", true, loader);
File jarFile=new文件(“/data/JarProjectWithDex.jar”);
DexClassLoader=新的DexClassLoader(jarFile.getPath(),getFilesDir().getPath(),null,this.getClassLoader());
Class classToLoad=Class.forName(“zordon.MegaZords”,true,loader);

签出此项目中的示例代码:
File jarFile = new File("/data/JarProjectWithDex.jar");
DexClassLoader loader = new DexClassLoader(jarFile.getPath(), getFilesDir().getPath(), null, this.getClassLoader());
Class<?> classToLoad = Class.forName("zordon.MegaZords", true, loader);