繁体   English   中英

如何访问Android中SDCard内的Java文件

[英]How to access java file which resides inside SDCard in Android

我正在尝试使用URLClassLoader类将Java文件加载到我的android项目中。

但是运行以下代码时出现ClassNotFoundError

package com.xyz.abc;
public class ConstantClassReader
{
    public void readFile() throws MalformedURLException
    {
        String url = "file://"+Environment.getExternalStorageDirectory().getPath()+"/StringConstants.class";
        URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[]{new URL(url)});
        Class simpleClass = null;
        try {
            simpleClass = urlClassLoader.loadClass("com.xyz.abc.StringConstants");
            Constructor simpleConstructor = simpleClass.getConstructor();
            Object simpleClassObj = simpleConstructor.newInstance();
            Method method = simpleClass.getMethod("myMethod");
            method.invoke(simpleClassObj);
        } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}

下面的Java文件位于我的SDCard中:

package com.xyz.abc;
public class StringConstants{
    public void myMethod(){
        System.out.println("myMethod Loaded");
    }
}

类加载器加载

将Java源文件放在某处不会。

您必须编译该文件。 也许那时你很幸运。 但是,如果Android JVM允许您从任意位置加载类,我会感到非常惊讶。 尖叫:“安全问题”到处都是。

根据您的要求,我建议使用其他解决方案,除了普通的Java属性之外。 含义:似乎您只是想向Java应用程序动态提供一些“配置”信息。 然后,让该应用读取包含键/值对的属性文件。 (几乎)照常营业; 而不需要将类文件加载到任意位置。

http://www.beanshell.org/

您可以嵌入beanshell,加载Java文件,实例并执行任何操作。

从sd像访问其他任何普通文件一样访问java文件

如何在Android中从SD卡读取文本文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM