uni-app 添加fcm的gradle插件打包报错

发布于 1周前 作者 yuanlaile 来自 uni-app

uni-app 添加fcm的gradle插件打包报错

操作步骤:

使用上述配置打包

预期结果:

编译正常

实际结果:

编译报错

bug描述:

HbuilderX 4.36中 uts插件中配置

{
"minSdkVersion": "21",
"project": {
"plugins": [
"com.google.gms.google-services"
],
"dependencies": [
"com.google.gms:google-services:4.3.10"
],
"repositories": [
"maven { url 'https://maven.google.com' }"
]
},
"dependencies": [
"com.google.firebase:firebase-messaging:23.1.0"
]
}

增加了firebase的依赖和gradle插件就编译报错

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ‘:app:mapReleaseSourceSetPaths’.

Error while evaluating property ‘extraGeneratedResDir’ of task ‘:app:mapReleaseSourceSetPaths’.
Failed to calculate the value of task ‘:app:mapReleaseSourceSetPaths’ property ‘extraGeneratedResDir’.
Querying the mapped value of provider(java.util.Set) before task ‘:app:processReleaseGoogleServices’ has completed is not supported

错误日志链接
错误日志

信息类别 内容
开发环境 HbuilderX 4.36
版本号 minSdkVersion: 21, google-services: 4.3.10, firebase-messaging: 23.1.0
项目创建方式 uts插件中配置

1 回复

在处理uni-app项目中添加fcm(Firebase Cloud Messaging)的gradle插件时遇到的打包报错问题,通常涉及到Android原生配置。以下是一个基本的步骤和代码示例,帮助你定位并解决问题。请确保你已经在Firebase控制台中正确设置了你的项目,并下载了相应的google-services.json文件并放置在你的app/目录下。

1. 更新项目级build.gradle

首先,确保你的项目级build.gradle文件中包含了对Google服务的classpath依赖。

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1' // 确保使用兼容的Gradle版本
        classpath 'com.google.gms:google-services:4.3.3' // 更新为最新版本
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

2. 更新应用级build.gradle

接着,在你的应用级build.gradle文件中,应用Google服务插件,并添加Firebase Messaging依赖。

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    // ... 其他配置 ...
}

dependencies {
    implementation 'com.google.firebase:firebase-messaging:21.1.0' // 更新为最新版本
    // ... 其他依赖 ...
}

3. 同步Gradle配置

完成上述修改后,点击Android Studio的“Sync Now”按钮以同步你的Gradle配置。

4. 检查AndroidManifest.xml

确保你的AndroidManifest.xml中包含了必要的Firebase服务权限和接收者配置。

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<application
    >
    <!-- Add this line inside the application tag -->
    <service
        android:name=".MyFirebaseMessagingService"
        android:exported="true">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
</application>

5. 编写Firebase Messaging Service

确保你有一个继承自FirebaseMessagingService的服务类来处理消息接收。

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // 处理接收到的消息
    }
}

结论

如果在添加这些配置后仍然遇到打包错误,请检查错误信息以获取更多线索。错误信息通常会指示缺失的依赖、配置错误或版本冲突等问题。确保所有依赖项都更新到兼容的版本,并仔细检查Gradle配置文件中的语法错误。

回到顶部