uni-app 添加fcm的gradle插件打包报错
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插件中配置 |
在处理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配置文件中的语法错误。