Google输入法调用抛出JNI错误

在ICS中,Google输入法出现崩溃,原因是libjni_pinyinime.so未打包进system.img。通过在Android.mk指定依赖解决了部分问题,但在userdebug版本仍崩溃。进一步调查发现是由于代码优化导致缺少nativeImOpenDecoder()方法。通过添加ProGuard配置保留该方法,成功避免了异常,使Google输入法正常运行。
摘要由CSDN通过智能技术生成

  这两天在调查ICS中Google输入法crash的问题。

 

  首先调查到原因是:libjni_pinyinime.so已生成在“¥OUT/obj/SHARED_LIBRARIES/”下,但没有打包到system.img中。

  解决这个问题的方法是:在Andriod.mk指定依赖关系,指定PinyinIME.apk依赖于libjni_pinyinime.so。

  在packages/inputmethods/PinyinIME/Android.mk中添加:

LOCAL_REQUIRED_MODULES := libjni_pinyinime


 解决了以上问题后,在eng版本中Google输入法可以使用了,但在userdebug版本中仍然会crash。经调查,两个版本生成的apk大小不一致,userdebug版要比eng版小100多B。log输出如下:

I/ActivityManager(  405): Start proc com.android.inputmethod.pinyin for service com.android.inputmethod.pinyin/.PinyinIME: pid=2093 uid=10064 gids={3003}
D/GpsLocationProvider(  405): Gps MessageHandler. msg.what 12
D/GpsLocationProvider(  405): handleNativePhoneContextUpdate called. updateType: 2 mRequestContextType: 0 mRequestType: 0
D/GpsLocationProvider(  405): handleNativePhoneContextUpdate. Update obtain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值