2016-03-02 48 views
0
  • 我正在使用DexClassLoader從Java jar中使用dx工具加載轉換爲DEX的jar文件。
  • 的JAR文件是:/storage/sdcard0/Download/br_applications/calculator.dx.jar
  • 我有權限:
  • 我的代碼是(+/-):android DexClassLoader。我找不到一種方法

    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 謝謝。
+0

你有沒有在logcat中尋找任何線索,什麼錯誤? – JesusFreke

回答

0

我做出了改變:

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

代替:

method_main.invoke (null, arguments_main_array); 

我有什麼問題在外部罐子被調用方法的代碼。

如果我使用:

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

我得到了一個有效的罐子。

但調用的代碼之前,而不是現在的工作......我不能對它進行調試... :(

相關問題