use*_*986 17 android android-ndk
我想对LatinIME做一些改动.我从git存储库获取代码 -
git clone https://android.googlesource.com/platform/packages/inputmethods/LatinIME
但我不知道如何从代码构建apk文件.如果有人从代码中构建了LatinIME,请您分享说明.
具体来说,我想知道如何构建字典工具(我想我需要ndk),如何构建本机代码(再次我猜它需要ndk),最后如何使用本机的lib文件构建java代码码.
我尝试在eclipse中创建Android应用程序项目(使用现有的代码选项),将root目录作为LatinIME/java我能够编译,但由于它没有libjni_latinime.so,它崩溃了.然后我从模拟器获取.so文件并将其放在libs/armeabi-v7a文件夹中.现在我得到这个例外:
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
Run Code Online (Sandbox Code Playgroud)
小智 6
我想我可能已经解决了这个......
在另一个项目中遇到类似的问题,由于文件扩展而资源被不必要地压缩,我将字典(.dict)重命名为.jet - 从压缩中排除的扩展名.Voila,词典现在正在运作.不确定现在看到的分辨率有多好,现在没有压缩,但它至少是朝着正确的方向迈出的一步?
到目前为止,我已经为不同的项目多次定制了LatinIME.我从未遇到过这个问题.但我从未使用eclipse来创建apks.我将整个AOSP代码下载到我的机器上,并使用AOSP编译修改后的源代码.并mm在out文件夹中创建apk文件,并可以安装adb install -r latinime.apk
以下是如何下载AOSP:http://source.android.com/source/downloading.html以下是如何 编译它:http://source.android.com/source/initializing.html和http:/ /xda-university.com/as-a-developer/getting-started-building-android-from-source
而LatinIME可以发现<android roo>/packages/inputmethods/LatinIME,修改代码疗法和CD相同的路径和运行mm(你需要做的source build/envisetup.sh和lunch full-eng做之前在同一终端完成mm)
首先是一些背景.正如其他答案所建议的那样,问题似乎与.dict被压缩的文件有关.例如,您可以在项目的LatinIME测试中看到官方Android构建如何解决这个问题
# Do not compress dictionary files to mmap dict data runtime
LOCAL_AAPT_FLAGS += -0 .dict
Run Code Online (Sandbox Code Playgroud)
快速搜索网络显示,到目前为止,这种指令或指示从Eclipse获取并不是微不足道的.build.xml如果你想don't-compress-dicts正确处理案例,你可能最终会创建一个.
一个很好的建议是关于如何指示不压缩某些文件的答案/问题aapt.
如果你想从你提供的官方git链接构建它,你最终将构建整个Android repo,你可以按照构建运行指令.
| 归档时间: |
|
| 查看次数: |
4986 次 |
| 最近记录: |