我的代码是(+/-):
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. */
答案 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>
我有一个有效的罐子。
但之前调用的代码工作而不是现在......我无法调试它...... :(