android 上部署的 Hello world 应用程序在启动后意外停止
Hello world app deployed on android stops unexpectedly just after start
我正在尝试在各种支持的平台上使用 Rho Studio(只需新建 -> 项目 -> 完成)运行 hello world 应用程序。我设法 运行 它在 win32 上。我对 windows 移动部署很好奇,但我现在坚持,因为它需要付费订阅。该应用程序还在模拟器的所有平台上 运行s,但是我使用 运行 配置 -> Android -> 设备未能在 android 上 运行 它)和 RhoMobile -> 生产构建 -> Android,本地。
我已经安装了 Android SDK 和 NDK。我手动 运行 keytool.exe
因为证书生成需要键盘输入并且它阻止了 rake 脚本。通常构建没问题,我有 RhoMobileApplication1-debug.apk 或 RhoMobileApplication1-signed.apk.
然后我将它部署到设备上
adb install *.apk
当我 运行 应用程序出现问题时,它几乎立即崩溃并显示标准 android 消息框。所以我做了 adb logcat
文件并找出可能的原因是在加载 librhodes.so
时它试图加载 soinfo_relocate
并失败。
然而在这一点上我的超能力让我失望了,因为 google 给了我唯一的线索,它可能与 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.access00(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 与 android 4.2.2
装有 android 4.4.2
的平板电脑
RhoMobile 目前不支持 NDK r10,您需要使用 NDK r9,如 RhoMobile documentation website.
中所述
在 RhoMobile 开发者论坛上,有一些关于与使用 NDK r10 的人相关的其他问题的讨论:
我正在尝试在各种支持的平台上使用 Rho Studio(只需新建 -> 项目 -> 完成)运行 hello world 应用程序。我设法 运行 它在 win32 上。我对 windows 移动部署很好奇,但我现在坚持,因为它需要付费订阅。该应用程序还在模拟器的所有平台上 运行s,但是我使用 运行 配置 -> Android -> 设备未能在 android 上 运行 它)和 RhoMobile -> 生产构建 -> Android,本地。
我已经安装了 Android SDK 和 NDK。我手动 运行 keytool.exe
因为证书生成需要键盘输入并且它阻止了 rake 脚本。通常构建没问题,我有 RhoMobileApplication1-debug.apk 或 RhoMobileApplication1-signed.apk.
然后我将它部署到设备上
adb install *.apk
当我 运行 应用程序出现问题时,它几乎立即崩溃并显示标准 android 消息框。所以我做了 adb logcat
文件并找出可能的原因是在加载 librhodes.so
时它试图加载 soinfo_relocate
并失败。
然而在这一点上我的超能力让我失望了,因为 google 给了我唯一的线索,它可能与 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.access00(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 与 android 4.2.2
装有 android 4.4.2
的平板电脑RhoMobile 目前不支持 NDK r10,您需要使用 NDK r9,如 RhoMobile documentation website.
中所述在 RhoMobile 开发者论坛上,有一些关于与使用 NDK r10 的人相关的其他问题的讨论: