React-native-keychain: Android Proguard

Created on 17 May 2017  路  4Comments  路  Source: oblador/react-native-keychain

Hello! We are getting the following error after running our app through proguard. The proguard rules are unchanged from react-native init. It seems to be complaining about something to do with reflection - any ideas on how to solve?

05-17 13:19:22.299  3149  3169 E RNKeychainManager: no keychain entry found for service:
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: JNI FindClass called with pending exception java.lang.NoSuchFieldError: no "J" field "mCtxPtr" in class "Lcom/facebook/crypto/cipher/NativeGCMCipher;" or its superclasses
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.String) (Runtime.java:-2)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at java.lang.String java.lang.Runtime.doLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:435)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void java.lang.Runtime.loadLibrary(java.lang.String, java.lang.ClassLoader) (Runtime.java:370)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void java.lang.System.loadLibrary(java.lang.String) (System.java:1076)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at boolean com.facebook.crypto.util.SystemNativeCryptoLibrary.loadLibraries() (SystemNativeCryptoLibrary.java:50)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.facebook.crypto.util.SystemNativeCryptoLibrary.ensureCryptoLoaded() (SystemNativeCryptoLibrary.java:39)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at boolean com.facebook.crypto.Crypto.isAvailable() (Crypto.java:54)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.oblador.keychain.KeychainModule.setGenericPasswordForOptions(java.lang.String, java.lang.String, java.lang.String, com.facebook.react.bridge.Promise) (KeychainModule.java:48)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.facebook.react.bridge.BaseJavaModule$JavaMethod.invoke(com.facebook.react.bridge.CatalystInstance, com.facebook.react.bridge.ExecutorToken, com.facebook.react.bridge.ReadableNativeArray) (BaseJavaModule.java:345)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.facebook.react.cxxbridge.JavaModuleWrapper.invoke(com.facebook.react.bridge.ExecutorToken, int, com.facebook.react.bridge.ReadableNativeArray) (JavaModuleWrapper.java:136)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.facebook.react.bridge.queue.NativeRunnable.run() (NativeRunnable.java:-2)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:739)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
05-17 13:19:22.369  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(android.os.Message) (MessageQueueThreadHandler.java:31)
05-17 13:19:22.370  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void android.os.Looper.loop() (Looper.java:148)
05-17 13:19:22.370  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run() (MessageQueueThreadImpl.java:196)
05-17 13:19:22.370  3149  3169 F art     : art/runtime/java_vm_ext.cc:410]   at void java.lang.Thread.run() (Thread.java:818)

Most helpful comment

Managed to work around this by adding the following line to proguard-rules.pro

-keep class com.facebook.crypto.** {
   *;
}

All 4 comments

Managed to work around this by adding the following line to proguard-rules.pro

-keep class com.facebook.crypto.** {
   *;
}

Care to make a PR to add this to the README?

Was this page helpful?
0 / 5 - 0 ratings