React Native + UI Kitten 的 APP 开发模式设备上一切正常, 当打 release 包并安装在设备上的时候出现了闪退的问题.
使用 android studio 查看 log:
E/AndroidRuntime( 5567): java.lang.IllegalStateException: java.lang.NoSuchFieldException: fill
E/AndroidRuntime( 5567): at com.horcrux.svg.t.a(Unknown Source)
E/AndroidRuntime( 5567): at com.horcrux.svg.j.b(Unknown Source)
E/AndroidRuntime( 5567): at com.horcrux.svg.j.a(Unknown Source)
E/AndroidRuntime( 5567): at com.horcrux.svg.t.d(Unknown Source)
E/AndroidRuntime( 5567): at com.horcrux.svg.x.a(Unknown Source)
E/AndroidRuntime( 5567): at com.horcrux.svg.x.j(Unknown Source)
E/AndroidRuntime( 5567): at com.horcrux.svg.x.onDraw(Unknown Source)
经过排查, 发现是 UI Kitten 使用了一个 react-native-svg 的库, 这个库需要做多一件事情, 在 {project_path}/android/app/proguard-rules.pro 文件里面添加一行:
-keep public class com.horcrux.svg.** {*;}
参考: