【问题标题】:FirebaseInitProvider. Resources not found [closed]FirebaseInitProvider。找不到资源[关闭]
【发布时间】:2018-10-18 12:46:49
【问题描述】:

我在应用程序中使用 Google Firebase 已经有一段时间了,我正在做一些维护和一些更新,但我不断得到:

无法获取提供程序 com.google.firebase.provider.FirebaseInitProvider

每当我启动应用程序时都会发生这种情况。我已经尝试启用MultiDex 并且我的applicationId 自从我开始使用FCM 以来就已设置。我只是不知道它会是什么。

任何帮助将不胜感激。

build.gradle(应用程序):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
    applicationId "com.vivatrucking.drivershub"
    multiDexEnabled true
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 2
    versionName "1.0.1"
    testInstrumentationRunner  "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    // android
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.volley:volley:1.0.0'
    // google
    implementation 'com.google.firebase:firebase-core:15.0.2'
    implementation 'com.google.firebase:firebase-messaging:15.0.2'
    //external libs
    implementation 'com.github.devlight:infinitecycleviewpager:1.0.2'
}
apply plugin: 'com.google.gms.google-services'

完整的堆栈跟踪:

05-08 15:03:31.400 30530-30530/? E/AndroidRuntime: 致命异常: main 进程:com.vivatrucking.drivershub,PID:30530 java.lang.RuntimeException:无法获取提供程序 com.google.firebase.provider.FirebaseInitProvider:android.content.res.Resources$NotFoundException:无法找到资源 ID #0x7f0c002a 在 android.app.ActivityThread.installProvider(ActivityThread.java:6575) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:6127) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:6037) 在 android.app.ActivityThread.-wrap1(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764) 在 android.os.Handler.dispatchMessage(Handler.java:105) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6938) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 原因:android.content.res.Resources$NotFoundException:找不到资源 ID #0x7f0c002a 在 android.content.res.ResourcesImpl.getResourcePackageName(ResourcesImpl.java:253) 在 android.content.res.Resources.getResourcePackageName(Resources.java:1963) 在 com.google.android.gms.common.internal.StringResourceValueReader.(未知来源:16) 在 com.google.firebase.FirebaseOptions.fromResource(未知来源:2) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源:19) 在 com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源:4) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1925) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1900) 在 com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知来源:23) 在 android.app.ActivityThread.installProvider(ActivityThread.java:6572) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:6127) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:6037) 在 android.app.ActivityThread.-wrap1(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764) 在 android.os.Handler.dispatchMessage(Handler.java:105) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6938) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

【问题讨论】:

  • YMMV,但在我的清单中添加接收器后,我收到了确切的错误消息。我做了一个“构建干净”并重新运行它,错误消失了
  • 我在删除未使用的 ic_launcher_background.xml 时遇到了同样的错误

标签: java firebase android-studio android-gradle-plugin firebase-cloud-messaging


【解决方案1】:

firebase-common 在FirebaseApp.initializeApp(Context) 中查找特定的字符串资源“google_app_id”,在我的情况下它似乎不存在。

(com.google.firebase:firebase-common@@16.0.4:301)
    StringResourceValueReader reader = new StringResourceValueReader(context);
    String applicationId = reader.getString("google_app_id");

我想这应该由 google-services.json 填充。目前不确定解决方案。

【讨论】:

    【解决方案2】:

    我认为我的解决方案可能对再次遇到此问题的任何人没有任何帮助,但我只想说明我为消除错误所做的工作。

    我已经实现了自己的 ShakeEventListener,但它与我的应用程序发生了冲突。

    如果您遇到问题,那么可能值得参考@Gazouu 发布的答案。答案是here

    【讨论】:

    • 请不要只链接到另一个答案。
    • @tir38我想你会发现我提供了一个答案,然后提供了另一个资源作为解决方案。
    【解决方案3】:

    尝试遵循这个: android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff

    或者只是谷歌搜索

    android.content.res.Resources$NotFoundException: 找不到资源 ID

    许多结果

    【讨论】:

    • 请考虑,在未来,人们将从 Google 登陆这里。您发布的第一个链接实际上与此特定问题的解决方案无关。
    • 只是“谷歌搜索”并不能帮助用户找到答案
    猜你喜欢
    • 2017-07-08
    • 1970-01-01
    • 2020-12-26
    • 2013-12-15
    • 2022-01-25
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2015-05-03
    相关资源
    最近更新 更多