Fatal exception: java.lang.NoSuchMethodError: No static method isDeviceProtectedStorage

匿名 (未验证) 提交于 2019-12-03 01:39:01

问题:

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. 

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?

回答1:

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. } 

https://developer.android.com/reference/android/support/v4/content/ContextCompat.html#isDeviceProtectedStorage(android.content.Context)



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!