Android Studio编译google PinyinIME

申屠洛华
2023-12-01

1. 获取PinyinIME的code。

2. AS中导入一个Eclipse的项目:PinyinIME

3.  编译,发现了第一只拦路虎,PinyinIME需要访问SDK的hide及internal的API,所以此时,需要按照

http://blog.csdn.net/linghu_java/article/details/8283042

4. 继续编译,发现第二只拦路虎,无法访问com.android.internal.R.string.inputMethod

CharSequence itemInputMethod = getString(com.android.internal.R.string.inputMethod);编译出错。
替换成:
CharSequence itemInputMethod = "zh_CN";
5.终于编出了APK。
6.安装到手机上,发现遇到如下错误:
E/AndroidRuntime(29063): Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
E/AndroidRuntime(29063):     at android.content.res.AssetManager.openNonAssetFdNative(Native Method)
E/AndroidRuntime(29063):     at android.content.res.AssetManager.openNonAssetFd(AssetManager.java:429)
E/AndroidRuntime(29063):     at android.content.res.Resources.openRawResourceFd(Resources.java:1091)
原来是dict_pinyin.dat被aapt默认压缩了,而openRawResourceFd只能访问未压缩的文件。
解决办法:
在app/build.gradle中加入:
aaptOptions {
    noCompress 'dat'
}
7. 重编,安装,google PinyinIME活了,可以告别国产坑爹输入法,避免它们的全家桶。

 类似资料: