Я хотел бы запустить приложение (пример калькулятора) для фрагмента, например, для моего приложения.
Я пытаюсь этот код, но получаю ошибку (строка Fragment):
String packageName = "com.android.calculator2";
Context ctx = getApplicationContext().createPackageContext(packageName, Context.CONTEXT_INCLUDE_CODE |
Context.CONTEXT_IGNORE_SECURITY);
ClassLoader cl = ctx.getClassLoader();
Class<?> c = cl.loadClass("com.android.calculator2.Calculator");
Fragment fragObj = (Fragment)c.newInstance();
Я получаю эту ошибку:
Процесс: fr.jm.managercamera, PID: 14006 java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {fr.jm.managercamera / fr.jm.managercamera.MainActivity}: java.lang.ClassCastException: com.android.calculator2.Calculator нельзя преобразовать в android.app.Fragment в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2325)
Я пытаюсь этот код, яполучить другую проблему:
Class requiredClass = null;final String apkPath = getPackageManager (). getApplicationInfo ("com.android.calculator2", 0) .sourceDir;
final File dexTemp = getDir("temp_folder", 0);
final String fullName = "com.android.calculator2.Calculator";
boolean isLoaded = true;
// Check if class loaded
try {
requiredClass = Class.forName(fullName);
} catch(ClassNotFoundException e) {
isLoaded = false;
}
if (!isLoaded) {
System.out.println("apkPath: " + apkPath);
System.out.println("dexTemp.getAbsolutePath(): " + dexTemp.getAbsolutePath());
final DexClassLoader classLoader = new DexClassLoader(apkPath,
dexTemp.getAbsolutePath(),
null,
getClass().getClassLoader());
/* DexClassLoader classLoader = new DexClassLoader(apkPath,"/tmp", null,
getClass().getClassLoader());*/
requiredClass = classLoader.loadClass(fullName);
}
Я получаю эту ошибку (строка loadClass):
10-0317: 50: 22,776 14133-14133 /? W / System.err: java.lang.ClassNotFoundException: не удалось найти класс «com.android.calculator2.Calculator» по пути: DexPathList [[zip-файл »/system/app/Calculator/Calculator.apk"],nativeLibraryDirectories=[/ vendor / lib64, / system / lib64]] 10-03 17: 50: 22.776 14133-14133 /? W / System.err: at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 10-03 17: 50: 22.776 14133-14133 /? W / System.err: at java.lang.ClassLoader.loadClass (ClassLoader.java:511) 10-03 17: 50: 22.776 14133-14133 /? W / System.err: at java.lang.ClassLoader.loadClass (ClassLoader.java:469)