我最近在我的应用程序中添加了firebase分析.并且在firebase崩溃日志中有几个致命错误的实例:
Exception java.lang.RuntimeException: android.os.DeadObjectException
android.app.ApplicationPackageManager.getPackageInstaller (ApplicationPackageManager.java:1641)
com.google.android.gms.common.zzo.zzy ()
com.google.android.gms.common.GoogleApiAvailability.zza ()
com.google.android.gms.internal.zzbco.zze ()
com.google.android.gms.internal.zzbbz.onConnectionSuspended ()
com.google.android.gms.internal.zzbcw.onConnectionSuspended ()
com.google.android.gms.internal.zzbbh.onConnectionSuspended ()
com.google.android.gms.common.internal.zzaa.onConnectionSuspended ()
com.google.android.gms.common.internal.zzh.handleMessage ()
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:158)
android.app.ActivityThread.main (ActivityThread.java:5255)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:902)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:697)
arrow_drop_down
Caused by android.os.DeadObjectException:
android.os.BinderProxy.transactNative (Binder.java)
android.os.BinderProxy.transact (Binder.java:496)
android.content.pm.IPackageManager$Stub$Proxy.getPackageInstaller (IPackageManager.java:4196)
android.app.ApplicationPackageManager.getPackageInstaller (ApplicationPackageManager.java:1638)
com.google.android.gms.common.zzo.zzy ()
com.google.android.gms.common.GoogleApiAvailability.zza ()
com.google.android.gms.internal.zzbco.zze ()
com.google.android.gms.internal.zzbbz.onConnectionSuspended ()
com.google.android.gms.internal.zzbcw.onConnectionSuspended ()
com.google.android.gms.internal.zzbbh.onConnectionSuspended ()
com.google.android.gms.common.internal.zzaa.onConnectionSuspended ()
com.google.android.gms.common.internal.zzh.handleMessage ()
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:158)
android.app.ActivityThread.main (ActivityThread.java:5255)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:902)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:697)
Run Code Online (Sandbox Code Playgroud)
它在我自己的代码中没有任何引用.我根本没有在测试中遇到它.有没有其他人有类似的问题出现,并知道这些用户可能正在做什么来触发此事件,或有任何洞察这可能是由此引起的?我最近做的唯一重大改变是添加了firebase分析,但由于问题尚未出现在测试中,我不确定问题是否真的是新的,或者我以前从未有过报告它的工具.
我最近实施了 android NDK 来隐藏我的应用程序密钥和机密。因为每当我在 android studio 中以调试模式运行我的应用程序时我都会这样做,所以我的断点会被 sigsegv(信号 sigsegv:无效地址(故障地址:0x8))中断。当我的任何进程完全访问 NDK 时,就会发生这种情况。我对正在发生的事情感到困惑,因为我对 NDK 非常陌生。我的 C 代码非常简单,看起来像:
#include <jni.h>
JNIEXPORT jstring JNICALL
Java_com_my_company_co_utilities_UtilFuncs_getSecretOne(JNIEnv *env, jobject instance) {
return (*env)-> NewStringUTF(env, "my_secret_1");
}
JNIEXPORT jstring JNICALL
Java_com_my_company_co_utilities_UtilFuncs_getSecretTwo(JNIEnv *env, jobject instance) {
return (*env)-> NewStringUTF(env, "my_secret_2");
}
JNIEXPORT jstring JNICALL
JJava_com_my_company_co_utilities_UtilFuncs_getKeyOne(JNIEnv *env, jobject instance) {
return (*env)-> NewStringUTF(env, "my_key_1");
}
JNIEXPORT jstring JNICALL
Java_com_my_company_co_utilities_UtilFuncs_getKeyTwo(JNIEnv *env, jobject instance) {
return (*env)->NewStringUTF(env, "my_key_2");
}
Run Code Online (Sandbox Code Playgroud)
我在我的静态 UtilFuncs 类中访问它,例如:
static {
System.loadLibrary("keys");
}
public static native String getSecretOne(); …Run Code Online (Sandbox Code Playgroud)