这两天在调查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