Android LatinIME 构建

标签 android android-ndk

我想对 LatinIME 进行一些更改。我从 git 存储库中获得了代码-

git 克隆 https://android.googlesource.com/platform/packages/inputmethods/LatinIME

但我不知道如何从代码中构建 apk 文件。如果有人从代码中构建了 LatinIME,您能否分享一下说明。

具体来说,我想知道如何构建字典工具(我想我需要 ndk)、如何构建 native 代码(我再次猜想它需要 ndk)以及最后如何使用 lib 构建 java 代码来自 native 代码的文件。

我尝试通过将根目录作为 LatinIME/java 在 Eclipse 中创建 Android 应用程序项目(使用现有代码选项),我能够编译,但由于它没有 libjni_latinime.so,因此它崩溃了。然后我从模拟器中获取了 .so 文件并将其放在 libs/armeabi-v7a 文件夹中。现在我得到了这个异常(exception):

10-15 12:54:55.289: E/AndroidRuntime(32253): FATAL EXCEPTION: InitializeBinaryDictionary 
10-15 12:54:55.289: E/AndroidRuntime(32253): android.content.res.Resources$NotFoundException: File res/raw/main_en.dict from drawable resource ID #0x7f070003

最佳答案

我想我可能已经解决了这个问题...

在另一个项目中遇到了类似的问题,其中资源由于文件扩展名而被不必要地压缩,我将字典 (.dict) 重命名为 .jet - 一个从压缩中排除的扩展名。瞧,字典现在正在工作。不确定现在字典未压缩时所看到的分辨率有多好,但至少这是朝着正确方向迈出的一步?

关于Android LatinIME 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19373833/

相关文章:

java - 如何将图像从 Java 应用程序发送到 Android 应用程序?

linux - 需要共享 (.so) 库之间的循环依赖

Android ffmpeg adb shell 未知编码器 'libx264'

Android NDK 构建 .so 但 Unresolved inclusion 所有包含

启用了 pthread_cancel 的 Android? ffmpeg 依赖于 pthread_cancel

android - 无法在 Android Studio 上设置 Android NDK 版本

android - 在 ViewPager 中重新加载或通知 Fragment 的数据

android - 如何在 Ubuntu 中使用终端关闭 Android Studio

android - 如何以编程方式监视android设备可用空间

java - 尝试创建 SQLite 数据库时出现 NullPointerException - Android