androidandroid-ndkrhomobilerhodes

Hello world app deployed on android stops unexpectedly just after start


I'm trying to run hello world app using Rho Studio (just New -> Project -> Finish) on various supported platforms. I managed to run it on win32. I'm curious about windows mobile deployment, but I'm holding out now, since it requires paid subscription. The app also runs on all platforms on simulator, however I failed to run it on android using either run configuration -> Android -> Device) and RhoMobile -> Production Build -> Android, Local.

I've installed Android SDK, and NDK. I run keytool.exe manually since cert generation requires keyboard input and it blocked rake script. Generally builds are ok, and I have RhoMobileApplication1-debug.apk or RhoMobileApplication1-signed.apk.

Then I deploy it to the device adb install *.apk

And when I run the app it almost immediately crashes with standard android messagebox when something goes really wrong. So i did adb logcat to file and figure out that possibly cause is that when loading librhodes.so it tries to load soinfo_relocate and fail.

However at this point my superpowers failed me, because google gives me only clue that it might be something with the Android NDK itself.

Any suggestions?

D/AbsListView(29935): unregisterIRListener() is called 

E/dalvikvm( 6074): dlopen("/data/app-lib/com.rhomobile.rhomobileapplication1-1/librhodes.so") failed: Cannot load library: soinfo_relocate(linker.cpp:976): cannot locate symbol "sigemptyset" referenced by "librhodes.so"...

W/dalvikvm( 6074): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/rhomobile/rhodes/RhodesApplication;

W/dalvikvm( 6074): Class init failed in newInstance call (Lcom/rhomobile/rhodes/RhodesApplication;)

D/AndroidRuntime( 6074): Shutting down VM

W/dalvikvm( 6074): threadid=1: thread exiting with uncaught exception (group=0x42040930)

E/AndroidRuntime( 6074): FATAL EXCEPTION: main

E/AndroidRuntime( 6074): java.lang.ExceptionInInitializerError

E/AndroidRuntime( 6074):    at java.lang.Class.newInstanceImpl(Native Method)

E/AndroidRuntime( 6074):    at java.lang.Class.newInstance(Class.java:1319)

E/AndroidRuntime( 6074):    at android.app.Instrumentation.newApplication(Instrumentation.java:1000)

E/AndroidRuntime( 6074):    at android.app.Instrumentation.newApplication(Instrumentation.java:985)

E/AndroidRuntime( 6074):    at android.app.LoadedApk.makeApplication(LoadedApk.java:499)

E/AndroidRuntime( 6074):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4565)

E/AndroidRuntime( 6074):    at android.app.ActivityThread.access$1400(ActivityThread.java:157)

E/AndroidRuntime( 6074):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)

E/AndroidRuntime( 6074):    at android.os.Handler.dispatchMessage(Handler.java:99)

E/AndroidRuntime( 6074):    at android.os.Looper.loop(Looper.java:176)

E/AndroidRuntime( 6074):    at android.app.ActivityThread.main(ActivityThread.java:5319)

E/AndroidRuntime( 6074):    at java.lang.reflect.Method.invokeNative(Native Method)

E/AndroidRuntime( 6074):    at java.lang.reflect.Method.invoke(Method.java:511)

E/AndroidRuntime( 6074):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)

E/AndroidRuntime( 6074):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)

E/AndroidRuntime( 6074):    at dalvik.system.NativeStart.main(Native Method)

E/AndroidRuntime( 6074): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_relocate(linker.cpp:976): cannot locate symbol "sigemptyset" referenced by "librhodes.so"...

E/AndroidRuntime( 6074):    at java.lang.Runtime.loadLibrary(Runtime.java:371)

E/AndroidRuntime( 6074):    at java.lang.System.loadLibrary(System.java:535)

E/AndroidRuntime( 6074):    at com.rhomobile.rhodes.NativeLibraries.load(NativeLibraries.java:5)

E/AndroidRuntime( 6074):    at com.rhomobile.rhodes.RhodesApplication.(RhodesApplication.java:105)

E/AndroidRuntime( 6074):    ... 16 more

D/SensorService( 1959):   -0.1 0.7 10.0

D/CrashAnrDetector( 1959): processName: com.rhomobile.rhomobileapplication1

D/CrashAnrDetector( 1959): broadcastEvent : com.rhomobile.rhomobileapplication1 data_app_crash

RhoMobileSuite5.2.2

jre1.8.0_51

android-ndk-r10e

phone with android 4.2.2

tablet with android 4.4.2


Solution

  • RhoMobile doesn't support at this moment NDK r10, you need to use NDK r9, as documented on RhoMobile documentation website.

    On RhoMobile developer forums there're some discussion about other issues linked to people using NDK r10: