android DexClassLoader。我无法得到一个名为

时间:2016-03-02 14:44:48

标签: android jar dex dexclassloader

  • 我正在使用DexClassLoader使用dx工具从Java jar加载转换为DEX的jar文件。
  • jar文件位于:/storage/sdcard0/Download/br_applications/calculator.dx.jar
  • 我有权限:
  • 我的代码是(+/-):

        String url_jar_path = "/storage/sdcard0/Download/br_applications/calculator.dx.jar";
        String         dex_dir = context.getDir("dex", 0).getAbsolutePath();
        ClassLoader    parent  = Cargar_jars.class.getClassLoader();
        dexclassloader = new DexClassLoader(url_jar_path, dex_dir, null, parent);
        main_class = "browserun.main.Mains";
        Class clase = dexclassloader.loadClass(main_class);
        Class[] arguments_array = new Class[1];
        arguments_array [0] = String [].class;
        Method method_main = clase.getMethod("main", arguments_array);
        String [] params_array = { "param_1" };
        Object[] arguments_main_array = new Object[1];
        arguments_main_array [0] = params_array;
        method_main.invoke (null, arguments_main_array);
        /* Here I got Exception: Method not found. */
    
  • 我尝试过使用.apk文件。而结果却是最糟糕的。我没有加载课程......
  • 我尝试使用.aar文件。结果很糟糕。
  • ¿有人能给我一个代码吗?
  • 我正在使用Android Studio,我使用带有模块的假apk应用程序创建jar文件,这是Java Jar。我使用dx工具来创建dx.jar文件:         dx --dex --output calculator.dx.jar calculator.jar 感谢。

1 个答案:

答案 0 :(得分:0)

我做了一个改变:

method_main.invoke (null, arguments_main_array[0]);

代替:

method_main.invoke (null, arguments_main_array);

我在外部jar中的被调用方法的代码中出错了。

如果我使用:

dex --dex --output <jar target> <jar origin>

我有一个有效的罐子。

但之前调用的代码工作而不是现在......我无法调试它...... :(