We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Once you've read this section and determined that your issue is appropriate for this repository, please delete this section.
only on API 34. issue is the jar file permission set rw-- my guess api 34 wants to see a read-only app_resources_lib.jar in cache directory
java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: JNI NewStringUTF called with pending exception java.lang.SecurityException: Writable dex file '/data/user/0/com.xxxxx.xxxxxx/cache/app_resources_lib.jar' is not allowed. java_vm_ext.cc:591] at java.lang.Object dalvik.system.DexFile.openDexFileNative(java.lang.String, java.lang.String, int, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:-2) java_vm_ext.cc:591] at java.lang.Object dalvik.system.DexFile.openDexFile(java.lang.String, java.lang.String, int, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:406) java_vm_ext.cc:591] at void dalvik.system.DexFile.(java.lang.String, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:128) java_vm_ext.cc:591] at void dalvik.system.DexFile.(java.io.File, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:101) java_vm_ext.cc:591] at dalvik.system.DexFile dalvik.system.DexPathList.loadDexFile(java.io.File, java.io.File, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexPathList.java:438) java_vm_ext.cc:591] at dalvik.system.DexPathList$Element[] dalvik.system.DexPathList.makeDexElements(java.util.List, java.io.File, java.util.List, java.lang.ClassLoader, boolean) (DexPathList.java:397) java_vm_ext.cc:591] at void dalvik.system.DexPathList.(java.lang.ClassLoader, java.lang.String, java.lang.String, java.io.File, boolean) (DexPathList.java:166) java_vm_ext.cc:591] at void dalvik.system.BaseDexClassLoader.(java.lang.String, java.lang.String, java.lang.ClassLoader, java.lang.ClassLoader[], java.lang.ClassLoader[], boolean) (BaseDexClassLoader.java:160) java_vm_ext.cc:591] at void dalvik.system.BaseDexClassLoader.(java.lang.String, java.io.File, java.lang.String, java.lang.ClassLoader) (BaseDexClassLoader.java:105) java_vm_ext.cc:591] at void dalvik.system.DexClassLoader.(java.lang.String, java.lang.String, java.lang.String, java.lang.ClassLoader) (DexClassLoader.java:55) java_vm_ext.cc:591] at java.lang.String com.com.xxxxx.xxxxxx.MainActivity.stringFromJNI() (MainActivity.java:-2) java_vm_ext.cc:591] at void com.com.xxxxx.xxxxxx.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:28) java_vm_ext.cc:591] at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:8595) java_vm_ext.cc:591] at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:8573) java_vm_ext.cc:591] at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1456) java_vm_ext.cc:591] at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3764) java_vm_ext.cc:591] at android.app.Activity android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions, int, android.content.Intent) (ActivityThread.java:3922) java_vm_ext.cc:591] at void android.app.servertransaction.LaunchActivityItem.execute(android.app.ClientTransactionHandler, android.os.IBinder, android.app.servertransaction.PendingTransactionActions) (LaunchActivityItem.java:103) java_vm_ext.cc:591] at void android.app.servertransaction.TransactionExecutor.executeCallbacks(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:139) java_vm_ext.cc:591] at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:96) java_vm_ext.cc:591] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2443) java_vm_ext.cc:591] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106) java_vm_ext.cc:591] at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:205) java_vm_ext.cc:591] at void android.os.Looper.loop() (Looper.java:294) java_vm_ext.cc:591] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:8176) java_vm_ext.cc:591] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) java_vm_ext.cc:591] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:552) java_vm_ext.cc:591] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:971) java_vm_ext.cc:591]
The text was updated successfully, but these errors were encountered:
crash starts with this --> Attempt to load writable dex file: /data/user/0/com.xxxxx.xxxxxx/cache/app_resources_lib.jar
Sorry, something went wrong.
//extern App *app; //-----------------
extern "C" JNIEXPORT jstring JNICALL Java_com_xxxxx_xxxxxxx_MainActivity_stringFromJNI( JNIEnv* env, jobject thiz) {
std::string hello = "Hello from C++"; app = ::firebase::App::Create(::firebase::AppOptions(), env, thiz); return env->NewStringUTF(hello.c_str());
}
This looks like it's probably related to a change in more recent versions of Android that affects how we run dynamic code: https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading
We'll get working on a fix as suggested in that doc.
Thanks for bringing this to our attention!
This has been fixed in firebase/firebase-cpp-sdk#1430 and will be included in the next SDK release (11.5.0). Thanks for the bug report!
jonsimantov
No branches or pull requests
[READ] For Firebase C++ SDK issues, please report to Firebase C++ open-source
Once you've read this section and determined that your issue is appropriate for this repository, please delete this section.
[REQUIRED] Please fill in the following fields:
[REQUIRED] Please describe the issue here:
only on API 34. issue is the jar file permission set rw--
my guess api 34 wants to see a read-only app_resources_lib.jar in cache directory
java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: JNI NewStringUTF called with pending exception java.lang.SecurityException: Writable dex file '/data/user/0/com.xxxxx.xxxxxx/cache/app_resources_lib.jar' is not allowed.
java_vm_ext.cc:591] at java.lang.Object dalvik.system.DexFile.openDexFileNative(java.lang.String, java.lang.String, int, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:-2)
java_vm_ext.cc:591] at java.lang.Object dalvik.system.DexFile.openDexFile(java.lang.String, java.lang.String, int, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:406)
java_vm_ext.cc:591] at void dalvik.system.DexFile.(java.lang.String, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:128)
java_vm_ext.cc:591] at void dalvik.system.DexFile.(java.io.File, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexFile.java:101)
java_vm_ext.cc:591] at dalvik.system.DexFile dalvik.system.DexPathList.loadDexFile(java.io.File, java.io.File, java.lang.ClassLoader, dalvik.system.DexPathList$Element[]) (DexPathList.java:438)
java_vm_ext.cc:591] at dalvik.system.DexPathList$Element[] dalvik.system.DexPathList.makeDexElements(java.util.List, java.io.File, java.util.List, java.lang.ClassLoader, boolean) (DexPathList.java:397)
java_vm_ext.cc:591] at void dalvik.system.DexPathList.(java.lang.ClassLoader, java.lang.String, java.lang.String, java.io.File, boolean) (DexPathList.java:166)
java_vm_ext.cc:591] at void dalvik.system.BaseDexClassLoader.(java.lang.String, java.lang.String, java.lang.ClassLoader, java.lang.ClassLoader[], java.lang.ClassLoader[], boolean) (BaseDexClassLoader.java:160)
java_vm_ext.cc:591] at void dalvik.system.BaseDexClassLoader.(java.lang.String, java.io.File, java.lang.String, java.lang.ClassLoader) (BaseDexClassLoader.java:105)
java_vm_ext.cc:591] at void dalvik.system.DexClassLoader.(java.lang.String, java.lang.String, java.lang.String, java.lang.ClassLoader) (DexClassLoader.java:55)
java_vm_ext.cc:591] at java.lang.String com.com.xxxxx.xxxxxx.MainActivity.stringFromJNI() (MainActivity.java:-2)
java_vm_ext.cc:591] at void com.com.xxxxx.xxxxxx.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:28)
java_vm_ext.cc:591] at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:8595)
java_vm_ext.cc:591] at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:8573)
java_vm_ext.cc:591] at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1456)
java_vm_ext.cc:591] at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3764)
java_vm_ext.cc:591] at android.app.Activity android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions, int, android.content.Intent) (ActivityThread.java:3922)
java_vm_ext.cc:591] at void android.app.servertransaction.LaunchActivityItem.execute(android.app.ClientTransactionHandler, android.os.IBinder, android.app.servertransaction.PendingTransactionActions) (LaunchActivityItem.java:103)
java_vm_ext.cc:591] at void android.app.servertransaction.TransactionExecutor.executeCallbacks(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:139)
java_vm_ext.cc:591] at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:96)
java_vm_ext.cc:591] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2443)
java_vm_ext.cc:591] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
java_vm_ext.cc:591] at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:205)
java_vm_ext.cc:591] at void android.os.Looper.loop() (Looper.java:294)
java_vm_ext.cc:591] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:8176)
java_vm_ext.cc:591] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
java_vm_ext.cc:591] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:552)
java_vm_ext.cc:591] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:971)
java_vm_ext.cc:591]
The text was updated successfully, but these errors were encountered: