我在主AOSP分支上运行了同步,因此我可以编译和构建自定义版本的LatinIME。我对LatinIME.java
文件进行了更改,并运行了make LatinIME
进行编译。我首先用emluator运行它,它很好,因为我能够确保libjni_latinime.so
位于/system/lib/
目录中。
现在我已准备好将它移到我的设备上 - 一个带有5.0(L)的Galaxy S5 G900V(Verizon) - 没有根源。
我安装了生成的.apk文件,但是我收到了错误,因为我没有办法将libjni_latinime.so
放到设备上而没有生根。
是否有任何方法可以将libjni_latinime.so
与LatinIME.apk或其他方式包含在一起,以便在不使用我的设备的情况下使其工作?我只是找不到任何资源,我真的不想让我的设备只是将这个文件移动到/ system / lib /...//>
提前致谢!
如果崩溃日志有帮助,那么它们就是。这是我安装APK并尝试打开键盘时生成的内容:
03-10 19:06:10.578: E/art(10652): No implementation found for long com.android.inputmethod.latin.BinaryDictionary.createOnMemoryNative(long, java.lang.String, java.lang.String[], java.lang.String[]) (tried Java_com_android_inputmethod_latin_BinaryDictionary_createOnMemoryNative and Java_com_android_inputmethod_latin_BinaryDictionary_createOnMemoryNative__JLjava_lang_String_2_3Ljava_lang_String_2_3Ljava_lang_String_2)
03-10 19:06:10.578: E/AndroidRuntime(10652): FATAL EXCEPTION: Executor - UserHistoryDictionary.en_US
03-10 19:06:10.578: E/AndroidRuntime(10652): Process: com.android.inputmethod.latin, PID: 10652
03-10 19:06:10.578: E/AndroidRuntime(10652): java.lang.UnsatisfiedLinkError: No implementation found for long com.android.inputmethod.latin.BinaryDictionary.createOnMemoryNative(long, java.lang.String, java.lang.String[], java.lang.String[]) (tried Java_com_android_inputmethod_latin_BinaryDictionary_createOnMemoryNative and Java_com_android_inputmethod_latin_BinaryDictionary_createOnMemoryNative__JLjava_lang_String_2_3Ljava_lang_String_2_3Ljava_lang_String_2)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.BinaryDictionary.createOnMemoryNative(Native Method)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.BinaryDictionary.<init>(BinaryDictionary.java:157)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.ExpandableBinaryDictionary.createOnMemoryBinaryDictionaryLocked(ExpandableBinaryDictionary.java:260)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.ExpandableBinaryDictionary.createNewDictionaryLocked(ExpandableBinaryDictionary.java:561)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.ExpandableBinaryDictionary.access$700(ExpandableBinaryDictionary.java:53)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.ExpandableBinaryDictionary$12.run(ExpandableBinaryDictionary.java:605)
03-10 19:06:10.578: E/AndroidRuntime(10652): at com.android.inputmethod.latin.ExpandableBinaryDictionary$1.run(ExpandableBinaryDictionary.java:194)
03-10 19:06:10.578: E/AndroidRuntime(10652): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-10 19:06:10.578: E/AndroidRuntime(10652): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-10 19:06:10.578: E/AndroidRuntime(10652): at java.lang.Thread.run(Thread.java:818)
03-10 19:06:10.588: V/ApplicationPolicy(1027): isApplicationStateBlocked userId 0 pkgname com.android.inputmethod.latin
03-10 19:06:10.598: E/art(10652): No implementation found for long com.android.inputmethod.latin.BinaryDictionary.createOnMemoryNative(long, java.lang.String, java.lang.String[], java.lang.String[]) (tried Java_com_android_inputmethod_latin_BinaryDictionary_createOnMemoryNative and Java_com_android_inputmethod_latin_BinaryDictionary_createOnMemoryNative__JLjava_lang_String_2_3Ljava_lang_String_2_3Ljava_lang_String_2)