URLClassLoader在加载类时抛出NullPointerException

时间:2015-08-27 11:43:17

标签: java android

我正在处理的(Android)应用程序的一部分需要一个'插件'用户可以将自己的代码放入jar文件夹中的文件夹。该应用程序将扫描该文件夹中的jar文件,并尝试加载它找到的所有类。现在,应用程序根本没有加载任何类,因为似乎所有对URLClassLoader.loadClass()的调用都会产生一个空指针。

private static URLClassLoader classLoader;
private static List<Class<? extends OpMode>> opModeList;

private static void attemptLoadClass(String entryname) {
    String classname = entryname.replace('/', '.');
    classname = classname.substring(0, classname.length() - 6);
    try {

        Class<?> c = classLoader.loadClass(classname);
        // ^^^ Problems are happening right here ^^^

        Object instance = c.newInstance();
        if (instance instanceof OpMode) {
            opModeList.add(((OpMode)instance).getClass());
        }
    } catch (Throwable ex) {
        ex.printStackTrace();
    }
}

classLoader由一个URL数组构成,该URL数组通向需要加载的所有jar文件。我还应该提一下,代码只会在Android设备上运行时出现无法解释的错误,而不是在我的计算机上运行。

1 个答案:

答案 0 :(得分:0)

你似乎在说NPE被这行代码抛出:

    Class<?> c = classLoader.loadClass(classname);

如果有,则只有一种可能的解释:classloadernull