我正在尝试在各种受支持的平台上使用Rho Studio运行hello world应用程序(只是New-> Project-> Finish)。我设法在win32上运行它。我对Windows Mobile部署感到好奇,但是我现在坚持了下来,因为它需要付费订阅。该应用程序还可以在模拟器上的所有平台上运行,但是我无法使用运行配置-> Android-> Device)和RhoMobile-> Production Build-> Android,Local在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()

E / dalvikvm(6074):dlopen(“ / data / app-lib / com.rhomobile.rhomobileapplication1-1 / librhodes.so”)失败:无法加载库:soinfo_relocate(linker.cpp:976):找不到符号“ sigemptyset被“ librhodes.so”引用...

W / dalvikvm(6074):异常Ljava / lang / UnsatisfiedLinkError;初始化Lcom / rhomobile / rhodes / RhodesApplication时抛出;

W / dalvikvm(6074):类实例在newInstance调用中失败(Lcom / rhomobile / rhodes / RhodesApplication;)

D / AndroidRuntime(6074):关闭VM

W / dalvikvm(6074):threadid = 1:线程以未捕获的异常退出(group = 0x42040930)

E / AndroidRuntime(6074):致命异常:主要

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

E / AndroidRuntime(6074):at java.lang.Class.newInstanceImpl(本机方法)

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

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

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

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

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

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

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

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

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

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

E / AndroidRuntime(6074):java.lang.reflect.Method.invokeNative(本机方法)

E / AndroidRuntime(6074):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):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)

E / AndroidRuntime(6074):位于dalvik.system.NativeStart.main(本机方法)

E / AndroidRuntime(6074):由以下原因引起:java.lang.UnsatisfiedLinkError:无法加载库:soinfo_relocate(linker.cpp:976):找不到由“ librhodes.so”引用的符号“ sigemptyset” ...

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

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

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

E / AndroidRuntime(6074):位于com.rhomobile.rhodes.RhodesApplication。(RhodesApplication.java:105)

E / AndroidRuntime(6074):...还有16个

D / SensorService(1959):-0.1 0.7 10.0

D / CrashAnrDetector(1959):进程名称:com.rhomobile.rhomobileapplication1

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


RhoMobileSuite5.2.2

jre1.8.0_51

android-ndk-r10e

装有Android 4.2.2的手机

平板电脑与Android 4.4.2

最佳答案

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

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


Rhostudio 5.1.1 not work in kitkat and lower versions
Android NDK r10d, Lollipop, 64-bit

关于android - 启动后,部署在Android上的Hello World应用程序意外停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33276696/

10-12 04:50