benlau/quickandroid

"quickandroid.example" died.

Closed this issue · 1 comments

Device: samsung s7

When I run the example deployed vi Qt Creator 4.2.1 built by Qt 5.8 in Windows 10, I get an error message "quickandroid.example" died. Quickandroid is installed via qpm.

messages from Qt Creator:

"quickandroid.example" died.
Starting remote process.E Zygote : v2
W SELinux : Function: selinux_compare_spd_ram, index[1], priority [2], priority version is VE=SEPF_SECMOBILE_6.0.1_0031
I libpersona: KNOX_SDCARD checking this for 10208
I libpersona: KNOX_SDCARD not a persona
E Zygote : accessInfo : 0
W SELinux : SELinux: seapp_context_lookup: seinfo=default, level=s0:c512,c768, pkgname=quickandroid.example
I art : Late-enabling -Xcheck:jni
D TimaKeyStoreProvider: TimaSignature is unavailable
D ActivityThread: Added TimaKeyStore provider
W ResourcesManager: getTopLevelResources: /data/app/quickandroid.example-2/base.apk / 1.0 running in quickandroid.example rsrc of package quickandroid.example
I InjectionManager: Inside getClassLibPath + mLibMap{0=, 1=}
D ResourcesManager: For user 0 new overlays fetched Null
I InjectionManager: Inside getClassLibPath caller
D InjectionManager: InjectionManager
D InjectionManager: fillFeatureStoreMap quickandroid.example
I InjectionManager: Constructor quickandroid.example, Feature store :{}
I InjectionManager: featureStore :{}
W ResourcesManager: getTopLevelResources: /data/app/quickandroid.example-2/base.apk / 1.0 running in quickandroid.example rsrc of package quickandroid.example
D ContextRelationManager: ContextRelationManager() : FEATURE_ENABLED=true
D RelationGraph: garbageCollect()
E Qt : Can't create main activity
E Qt : java.io.FileNotFoundException: --Added-by-androiddeployqt--/qml/QuickAndroid/drawable/ActionBarBackground.qml
E Qt : at android.content.res.AssetManager.openAsset(Native Method)
E Qt : at android.content.res.AssetManager.open(AssetManager.java:363)
E Qt : at android.content.res.AssetManager.open(AssetManager.java:337)
E Qt : at org.qtproject.qt5.android.bindings.QtLoader.copyAsset(QtLoader.java:358)
E Qt : at org.qtproject.qt5.android.bindings.QtLoader.extractBundledPluginsAndImports(QtLoader.java:467)
E Qt : at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:546)
E Qt : at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:181)
E Qt : at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
E Qt : at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
E Qt : at android.app.Activity.performCreate(Activity.java:6876)
E Qt : at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
E Qt : at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207)
E Qt : at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350)
E Qt : at android.app.ActivityThread.access$1100(ActivityThread.java:222)
E Qt : at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
E Qt : at android.os.Handler.dispatchMessage(Handler.java:102)
E Qt : at android.os.Looper.loop(Looper.java:158)
E Qt : at android.app.ActivityThread.main(ActivityThread.java:7229)
E Qt : at java.lang.reflect.Method.invoke(Native Method)
E Qt : at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
E Qt : at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
D Activity: performCreate Call Injection manager
I InjectionManager: dispatchOnViewCreated > Target : quickandroid.QuickAndroidActivity isFragment :false
E art : No implementation found for void quickandroid.SystemDispatcher.jniEmit(java.lang.String, java.util.Map) (tried Java_quickandroid_SystemDispatcher_jniEmit and Java_quickandroid_SystemDispatcher_jniEmit__Ljava_lang_String_2Ljava_util_Map_2)
D AndroidRuntime: Shutting down VM
E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: quickandroid.example, PID: 18423
E AndroidRuntime: java.lang.UnsatisfiedLinkError: No implementation found for void quickandroid.SystemDispatcher.jniEmit(java.lang.String, java.util.Map) (tried Java_quickandroid_SystemDispatcher_jniEmit and Java_quickandroid_SystemDispatcher_jniEmit__Ljava_lang_String_2Ljava_util_Map_2)
E AndroidRuntime: at quickandroid.SystemDispatcher.jniEmit(Native Method)
E AndroidRuntime: at quickandroid.SystemDispatcher.emit(SystemDispatcher.java:161)
E AndroidRuntime: at quickandroid.SystemDispatcher.dispatch(SystemDispatcher.java:66)
E AndroidRuntime: at quickandroid.SystemDispatcher.dispatch(SystemDispatcher.java:40)
E AndroidRuntime: at quickandroid.SystemDispatcher.onActivityResume(SystemDispatcher.java:117)
E AndroidRuntime: at quickandroid.QuickAndroidActivity.onResume(QuickAndroidActivity.java:21)
E AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1286)
E AndroidRuntime: at android.app.Activity.performResume(Activity.java:6987)
E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4145)
E AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4250)
E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3361)
E AndroidRuntime: at android.app.ActivityThread.access$1100(ActivityThread.java:222)
E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
E AndroidRuntime: at android.os.Looper.loop(Looper.java:158)
E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7229)
E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
I Process : Sending signal. PID: 18423 SIG: 9

"quickandroid.example" died.

The jniEmit function is not registered. You should register it in your main.cpp like this:

JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void*) {
    Q_UNUSED(vm);
    qDebug("NativeInterface::JNI_OnLoad()");

    // It must call this function within JNI_OnLoad to enable System Dispatcher
    QASystemDispatcher::registerNatives();
}

Example code:

https://github.com/benlau/quickandroid/blob/master/examples/quickandroidexample/main.cpp#L15