Android应用程序崩溃:使用Apache Cordova在移动设备上运行演示NaCl应用程序(pexe应用程序)

Android App Crash: Running demo NaCl app (pexe app) on mobile using Apache Cordova

我正在尝试按照以下说明在Android Mobile上运行Chrome应用:
developer.chrome.com/apps/chrome_apps_on_mobile

从以上URL,我可以在Android Emulator 5.0.1中正常运行计算器应用程序。没问题。

github.com/GoogleChrome/chrome-app-samples/tree/master/samples/calculator

Android屏幕截图上的Chrome应用计算器

然后,我尝试从nacl_sdk的示例api目录在桌面上运行"本机客户端"应用程序:
developer.chrome.com/native-client/sdk/download

nacl_sdk附带了一些示例,包括演示和核心api示例。所有示例在桌面上都可以正常工作。从它们中我拿出了'file_io'api示例,该示例在编译(make)后运行良好。我使用了该文件夹,并使用以下命令创建了cca cordova应用程序:

cca create FileApp --copy-from=/path/to/file_io/manifest.json

然后将cd转到FileAppcca prepare

之后运行Android eumlate命令:

cca run android --target=avd5

它处理的一切都很好,我发现构建此计算器应用程序(例如计算器应用程序)时不会出错。但是,在"启动成功"之后,应用启动了Android模拟器,但当机了。仿真器窗口关闭。

我从AVD Manager启动了Android模拟器,并在启动Android后尝试启动"文件I / O"应用,结果显示了消息

"不幸的是,文件I / O已停止。"截图

这是否意味着Android OS仍不支持PNaCl / NaCl应用程序?
NaCl应用程序包含.pexe文件。
我之间可能缺少任何步骤吗?

我真的很感谢在这方面的任何帮助,以测试我是否可以像使用Apache Cordova示例的Chrome Mobile Apps一样在Android OS上运行Native Client Apps。


Chrome for Android(并暗示基于Chrome / Chromium的WebView)不支持Native Client(NaCl)。

请参阅:http://developer.chrome.com/multidevice/faq

1
2
Q: Does Native Client work on Chrome for Android?
A: It does not, and we have no plans to announce at this time.

但是,OP的阅读地址为:https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/faq.md#is-nacl--pnacl-supported

1
2
3
Q: Is NaCl/PNaCl supported [in Cordova]?
A: No. However, you can still compile and use native code
   by writing a custom Cordova plugin.

不幸的是,native这个词是一个重载的词,根据上下文的不同具有不同的含义,因此OP开始询问有关Android Native Development Kit(NDK)的问题。

使用Java本机接口(JNI)进行C / C代码与Android Java框架进行通信的Android NDK。通常,Android应用仅在需要移植现有C / C库或对物理建模或图像处理等计算性能有要求的情况下才使用NDK。

当Cordova指"本机代码"时,它指的是用Android Java编写的代码,这需要通过Cordova插件桥接到JavaScript端。

当然,为什么要使用上述任何框架/ API取决于OP想要执行的操作。