0
  • 我正在使用 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 --outputcalculator.dx.jarcalculator.jar 谢谢。
4

1 回答 1

0

我做了一个改变:

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

反而:

method_main.invoke (null, arguments_main_array);

我在外部 jar 中调用方法的代码有问题。

如果我使用:

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

我有一个有效的罐子。

但是调用的代码以前有效,现在无效...而且我无法调试它... :(

于 2016-03-03T20:00:26.673 回答