我刚刚将我的React Native应用程序升级到版本0.60.4
。在这里,我尝试添加react-native-firebase
版本^5.2.3
并遇到以下错误:
我尝试替换
import io.invertase.firebase.RNFirebaseAdMobPackage;
使用
import io.invertase.firebase.RNFirebasePackage;
还有
new RNFirebaseAdMobPackage();
使用
new RNFirebasePackage();
在PackageList.java
中。但是到目前为止没有运气。我还能做什么来解决这个问题?
答案 0 :(得分:1)
依次检查设置。
build.gradle
个文件:buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:4.2.0'
}
}
android/app/build.gradle
文件的底部: apply plugin: 'com.google.gms.google-services'
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/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>