java - 为什么我通过 Bazel 构建的应用程序在添加 Firebase 依赖项后一打开就会崩溃?

标签 java android bazel

2019-01-28 14:41:46.839 30612-30612/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sensennetworks.senanpr, PID: 30612
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
    at android.app.ActivityThread.installProvider(ActivityThread.java:6717)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:6215)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6132)
    at android.app.ActivityThread.-wrap1(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1839)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:197)
    at android.app.ActivityThread.main(ActivityThread.java:7018)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:514)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:837)
 Caused by: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.

我一打开它就崩溃了。这是我的工作空间文件,

aar_import_external(
      name = 'com_google_firebase_firebase_messaging_directboot_17_0_3',
      licenses = ['notice'], # apache
      aar_urls = ['https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messaging-directboot/17.0.3/firebase-messaging-directboot-17.0.3.aar'],
      aar_sha256 = '',
      deps = [
        '@com_google_android_gms_play_services_basement_16_0_1//aar',
        '@com_google_android_gms_play_services_tasks_16_0_1//aar',
        '@com_google_firebase_firebase_common_16_0_3//aar',
        '@com_google_firebase_firebase_iid_17_0_4//aar',
        '@com_google_firebase_firebase_messaging_17_3_4//aar',
        '@com_google_android_gms_play_services_stats_16_0_1//aar',
        '@com_google_firebase_firebase_iid_interop_16_0_1//aar',
      ],
    )

我在 BUILD 文件中导入相同的内容。

最佳答案

关键是使用 bazelbuild/tools_android 中的工具集成 google-services.json 。 Android 构建需要对生成为资源 XML 的 JSON 文件进行后处理。

关于java - 为什么我通过 Bazel 构建的应用程序在添加 Firebase 依赖项后一打开就会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54398695/

相关文章:

android - 如何在android中读取XML父节点标签值

java - 如何在使用 Thrift 文件生成 Bazel 构建时添加依赖项 java 文件

c++ - 将警告视为错误但忽略 googletest 中的警告

android - 在 Android 中隐藏主页和后退按钮

JavaFx 不接受媒体源文件

java - 图像从 SD 卡加载

Java:传递未实例化的对象引用如何工作?

android - Html 列表标签在 android textview 中不起作用。我能做些什么?

java - gRPC + Bazel + Envoy Json Proxy - 如何导入 google/api/annotations.proto

java - 如何在 Java 中使用 JSlider 设置标签匹配主要刻度