RNFirebaseAdMobPackage在本地版本0.60.4中引发错误

时间:2019-07-29 08:47:17

标签: react-native react-native-firebase

我刚刚将我的React Native应用程序升级到版本0.60.4。在这里,我尝试添加react-native-firebase版本^5.2.3并遇到以下错误:

enter image description here

我尝试替换

import io.invertase.firebase.RNFirebaseAdMobPackage;

使用

import io.invertase.firebase.RNFirebasePackage;

还有

new RNFirebaseAdMobPackage();

使用

new RNFirebasePackage();
PackageList.java

。但是到目前为止没有运气。我还能做什么来解决这个问题?

1 个答案:

答案 0 :(得分:1)

依次检查设置。

  • 为了让Android解析此文件,请添加google-services gradle插件作为项目级别的项目依赖项 build.gradle个文件:
buildscript {
  // ...
  dependencies {
    // ...
    classpath 'com.google.gms:google-services:4.2.0'
  }
}
  1. 要将插件应用于您的项目,请将以下内容添加到非常 您的应用android/app/build.gradle文件的底部:
    apply plugin: 'com.google.gms.google-services'
  1. Firebase模块需要作为项目依赖项安装。 在android/app/build.gradle文件中,添加以下内容:
    dependencies {
      // This should be here already
      implementation project(':react-native-firebase')

      // Firebase dependencies
      implementation "com.google.android.gms:play-services-base:16.1.0"
      implementation "com.google.firebase:firebase-core:16.0.9"

      ...
  1. 由于Android Firebase v12 +中的一些重大更改 库,则需要至少将Gradle版本升级到 v4.4并进行以下其他一些调整:

1)在android/gradle/wrapper/gradle-wrapper.properties中,将gradle URL更新为gradle-4.4-all.zip 2)在android/build.gradle中,检查是否在buildScript存储库部分中指定了google()

buildscript {
    repositories {
        google()  // <-- Check this line exists and is above jcenter
        jcenter()
        // ...
    }
    // ...
}

3)在android/build.gradle中,将Android构建工具更新为3.4.1版:

classpath 'com.android.tools.build:gradle:3.4.1'

11.2.0开始的Google Play服务需要从Google的Maven存储库中下载它们的依赖项,因此将必需的引用添加到项目级别build.gradle(android / build.gradle)的存储库部分:< / p>

allprojects {
    repositories {
        mavenLocal()
        google() // <-- Add this line above jcenter
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}
  • 在启用了Proguard的情况下使用react-native-firebase时    (android/app/build.gradle中的minifyEnabled为true),您需要更新    您的proguard-rules.pro文件(android/app/proguard-rules.pro)到    包括以下几行:

    -保留io.invertase.firebase类。** {*; }

    -dontwarn io.invertase.firebase。**

RNFirebasePackage仅使您的应用程序可以访问核心功能。查看其他模块上的安装指南,以了解如何使用其他Firebase功能。

请检查是否有此部分。

dependencies {
  // ...
  implementation "com.google.firebase:firebase-ads:17.2.1"
}
import io.invertase.firebase.admob.RNFirebaseAdMobPackage; // <-- this line
...
ew RNFirebaseAdMobPackage() // <-- this line
<application ...>

  <!-- this line as part of new AdMob library process. Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
  <meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="YOUR_ADMOB_APP_ID"/>

  <uses-library android:name="org.apache.http.legacy" android:required="false"/>  <!-- this line to avoid crashes on Android 9 until AdMob SDK update -->

</application>