同じプロセスでいくつかの Android アプリケーションを実行したいので、それらのアプリケーションAndroidManifest
に同じ sharedUserIdを与えます。
< manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
android:sharedUserId="aaa.bbb" >
各アプリのアプリケーションに同じプロセスを割り当てます。
< application
...
android:process="com.mytest" >
で動作しandroid 4.4.4
、すべてのアプリケーションが同じプロセスで実行されます。
しかし、クラッシュが発生しましたandroid 6.0.1
。2 番目のアプリを実行すると、次の理由でクラッシュします。
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}:
java.lang.ClassNotFoundException: Didn't find class "com.example.myapplication.MainActivity" on path:
DexPathList[[zip file "/data/app/com.example.myapplication-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication-1/lib/arm, /vendor/lib, /system/lib]]
システムがプロセスを強制終了した後、最初のアプリケーションを実行すると、2 番目のアプリが実行されてクラッシュします。
アプリケーションを同時に同じプロセスで実行できないようで、その理由はわかりません。