私はこのような要求を持っています。私はapkファイルで活動を開始したいのですが、私はinstallation.justを呼び出すことはしません。apkのクラスとリソースを直接ロードしてください。インストールせずにapkでアクティビティを開始するには?
ここはマイコード ですが、アクティビティが正しく初期化されていません。
DexClassLoader dLoader = new DexClassLoader(APK_PATH,"/mnt/sdcard",null, ClassLoader.getSystemClassLoader().getParent());
PackageInfo pInfo;
pInfo = getPackageManager().getPackageArchiveInfo(APK_PATH, 1);
if ((pInfo.activities != null) && (pInfo.activities.length > 0))
{
clientClass = dLoader.loadClass(pInfo.activities[0].name);
clientInstance = clientClass.getConstructor(new Class[0]).newInstance(new Object[0]);
Class[] tempClasses = new Class[1];
tempClasses[0] = Bundle.class;
Method onCreateMethod = clientClass.getDeclaredMethod("onCreate", tempClasses);
onCreateMethod.setAccessible(true);
Object[] tempObjects = new Object[1];
tempObjects[0] = new Bundle();
onCreateMethod.invoke(clientInstance, tempObjects);
}
誰かが私を助けることができますか?私は非常に感謝します。
APK_PATH = "" /mnt/sdcard/target.apk " – user9950
壊れています。非常に壊れています。SDカードへのパスは、Environmentクラスを使用して検出されます。 – hackbod