在Android上部署的Hello world应用程序在启动后意外停止

时间:2015-10-22 08:37:39

标签: android android-ndk rhomobile rhodes

我正在尝试使用Rho Studio(只是New - > Project - > Finish)在各种支持的平台上运行hello world app。我设法在win32上运行它。我很好奇Windows移动部署,但我现在坚持,因为它需要付费订阅。该应用程序也可以在模拟器上的所有平台上运行,但我无法使用运行配置在Android上运行它 - > Android - >设备)和RhoMobile - >生产构建 - > Android,Local。

我已经安装了Android SDK和NDK。我手动运行keytool.exe,因为证书生成需要键盘输入并且它阻止了rake脚本。通常构建都可以,我有RhoMobileApplication1-debug.apk或RhoMobileApplication1-signed.apk。

然后我将其部署到设备上 adb install *.apk

当我运行应用程序时,如果出现问题,它几乎会立即崩溃标准的android消息框。所以我做了adb logcat来提交并弄清楚可能的原因是加载librhodes.so时它会尝试加载soinfo_relocate并失败。

然而在这一点上,我的超级大国让我失望,因为谷歌只给我一些线索,它可能与Android NDK本身有关。

有什么建议吗?

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

机器人-NDK-r10e

手机用android 4.2.2

平板电脑与android 4.4.2

1 个答案:

答案 0 :(得分:1)

RhoMobile目前不支持NDK r10,您需要使用NDK r9,如RhoMobile documentation website所述。

在RhoMobile开发者论坛上,有一些关于与使用NDK r10的人相关的其他问题的讨论: