0
  • dx ツールを使用して、DexClassLoader を使用して、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 を使用しており、Java Jar であるモジュールを備えた偽の apk アプリケーションを使用して jar ファイルを作成しています。dx ツールを使用して dx.jar ファイルを作成します。 dx --dex --output calculator.dx.jar calculator.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 に答える