You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native集成Firebase FCM遇权限错误,无MainApplication.java求助

解决React Native Firebase FCM权限请求错误(Kotlin项目)

问题根源

错误提示针对Java版MainApplication.java的配置要求,但你的项目使用Kotlin编写的MainApplication.kt,需用Kotlin语法完成对应配置。

修复步骤

1. 更新MainApplication.kt

打开android/app/src/main/java/com/[你的项目包名]/MainApplication.kt,执行以下修改:

  • 导入Firebase包:在文件顶部导入区域添加:
import io.invertase.firebase.app.ReactNativeFirebaseAppPackage
  • 添加包到Package列表:
    找到getPackages()方法,将ReactNativeFirebaseAppPackage加入包集合:

若使用PackageList(RN较新版本):

override fun getPackages(): List<ReactPackage> {
    return PackageList(this).packages.apply {
        add(ReactNativeFirebaseAppPackage())
    }
}

若使用传统列表写法:

override fun getPackages(): List<ReactPackage> {
    return listOf(
        MainReactPackage(),
        ReactNativeFirebaseAppPackage(),
        // 保留其他已添加的包
    )
}

2. 验证基础配置

  • 确认android/app/google-services.json已正确放置(从Firebase控制台下载)。
  • 检查android/app/build.gradle中已添加Firebase依赖,且版本与React Native Firebase匹配。
  • 确保AndroidManifest.xml包含FCM必要配置:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<application ...>
    <service
        android:name="io.invertase.firebase.messaging.ReactNativeFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
</application>

3. 重建项目

执行命令清理缓存并重新构建:

cd android && ./gradlew clean
cd .. && npx react-native run-android

内容的提问来源于stack exchange,提问作者Chanaka-7518

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 20:51:14