致命异常:java.lang.NoSuchMethodError:没有静态方法isDeviceProtectedStorage [英] Fatal exception: java.lang.NoSuchMethodError: No static method isDeviceProtectedStorage
问题描述
当使用 cordova-plugin-firebase 时,我遇到了以下错误:
When using cordova-plugin-firebase, I ran in to the following error:
04-27 16:59:35.745 6859 6859 E AndroidRuntime: FATAL EXCEPTION: main
04-27 16:59:35.745 6859 6859 E AndroidRuntime: Process: com.XXXXXXXXXX.XXXXXXXXXXX, PID: 6859
04-27 16:59:35.745 6859 6859 E AndroidRuntime: java.lang.NoSuchMethodError: No static method isDeviceProtectedStorage(Landroid/content/Context;)Z in class Landroid/support/v4/content/ContextCompat; or its super classes (declaration of 'android.support.v4.content.ContextCompat' appears in /data/app/com.XXXXXXXXXX.XXXXXXXXXXX-1/base.apk)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.google.firebase.FirebaseApp.zza(Unknown Source)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5855)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:5447)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5386)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.app.ActivityThread.-wrap2(ActivityThread.java)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1546)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6121)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
04-27 16:59:35.745 6859 6859 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
04-27 16:59:35.749 975 1021 W ActivityManager: Force finishing activity com.XXXXXXXXXX.XXXXXXXXXXX/.MainActivity
04-27 16:59:35.779 2358 6582 I PBSessionCacheImpl: Deleted sessionId[10372086956677829] from persistence.
04-27 16:59:35.795 2358 2358 W SearchService: Abort, client detached.
04-27 16:59:35.798 2358 2358 E WorkerRegistryImpl: getWorker() is called after WorkerRegistry disposal.
04-27 16:59:35.798 2358 2358 E WorkerRegistryImpl: getWorker() is called after WorkerRegistry disposal.
起初我以为是因为 isDeviceProtectedStorage API 24及更高版本。但是,即使在Android 7上使用更新的设备,也会出现相同的消息。
At first I thought it is because isDeviceProtectedStorage in android.support.v4.content.ContextCompat was only added in API 24 and later. But even when using a newer device with Android 7, the same messages appears.
为什么找不到该方法?
Why is the method not found? Is it because I failed to install some library?
推荐答案
根据Android开发人员文档,isDeviceProtectedStorage已在24.0.0中添加。如果您在此提到的API版本以下运行该应用,请对其进行检查
As per Android developer documentation isDeviceProtectedStorage was added in 24.0.0. If you are running the app below this mentioned API version, make a check for it
if (Build.VERSION.SDK_INT >= 24){
//TODO: Do your stuff here.
}
这篇关于致命异常:java.lang.NoSuchMethodError:没有静态方法isDeviceProtectedStorage的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!