Flutter Firebase thông báo Messeging

Nov 07 2020

Tôi đang cố gắng triển khai firebase_messaging trong ứng dụng Flagship của mình. Trên Tích hợp Android khi tôi viết mã cấp Ứng dụng gốc, tôi gặp lỗi đối với các lớp trùng lặp nhưng không biết tại sao.

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;

class Application: FlutterApplication(), PluginRegistrantCallback {

    override fun onCreate() {
        super.onCreate()
        FlutterFirebaseMessagingService.setPluginRegistrant(this)
    }
    override fun registerWith(registry: PluginRegistry?) {
        io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));     
    }
}

D8: Đã có loại chương trình: com.project.my_project.Application com.android.builder.dexing.DexArchiveMergerException: Lỗi khi hợp nhất các kho lưu trữ dex: Tìm hiểu cách giải quyết vấn đề tại https://developer.android.com/studio/build/dependencies#duplicate_classes. Đã có loại chương trình: com.project.my_project.Application tại com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow (D8DexArchiveMerger.java:131) tại com.android.builder.dexing.D8DexArchiveMerger.mergeDex8DexArchiveMerger.merge tại com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call (DexMergerTransformCallable.java:102) tại com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run (DexMergingTask.kt: 444) ...

  • Đã xảy ra sự cố: Không thực thi được tác vụ ': app: mergeProjectDexDebug'.

Đã xảy ra lỗi khi thực thi com.android.build.gradle.internal.tasks.Workers $ ActionFacade com.android.builder.dexing.DexArchiveMergerException: Lỗi khi hợp nhất các kho lưu trữ dex: Tìm hiểu cách giải quyết sự cố tại https://developer.android.com/studio/build/dependencies#duplicate_classes. Loại chương trình đã có: com.project.my_project.Application <

Flutter doctor [✓] Flutter (Kênh ổn định, 1.22.3, trên Mac OS X 10.15.7 19H2, locale pt-BR) • Flutter phiên bản 1.22.3 tại / Người dùng / nhà phát triển / Tài liệu / Tài liệu / Phát triển / Flutter • Sửa đổi khung 8874f21e79 (8 ngày trước), 2020-10-29 14:14:35 -0700 • Sửa đổi động cơ a1440ca392 • Phiên bản Dart 2.10.3

[✓] Chuỗi công cụ Android - phát triển cho thiết bị Android (Android SDK phiên bản 30.0.2) • Android SDK tại / Người dùng / nhà phát triển / Thư viện / Android / sdk • Nền tảng android-30, công cụ xây dựng 30.0.2 • Java binary tại: / Ứng dụng / Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Phiên bản Java OpenJDK Runtime Environment (bản dựng 1.8.0_242-release-1644-b3-6222593) • Tất cả các giấy phép Android đều được chấp nhận.

[✓] Xcode - phát triển cho iOS và macOS (Xcode 12.1) • Xcode tại /Application/Xcode.app/Contents/Developer • Xcode 12.1, Build phiên bản 12A7403 • CocoaPods phiên bản 1.10.0

[!] Android Studio (phiên bản 4.1) • Android Studio tại / Applications / Android Studio.app/Contents ✗ Chưa cài đặt plugin Flutter; điều này bổ sung chức năng cụ thể của Flutter. (Ngay cả khi biết rằng nó đã được cài đặt đang hoạt động) plugin Chưa cài đặt plugin Dart; điều này bổ sung thêm chức năng cụ thể của Dart. (Ngay cả khi biết nó đã được cài đặt và hoạt động) • Môi trường thời gian chạy OpenJDK phiên bản Java (bản dựng 1.8.0_242-release-1644-b3-6222593)

[✓] Mã VS (phiên bản 1.50.1) • Mã VS tại / Applications / Visual Studio Code.app/Contents • Phiên bản tiện ích mở rộng Flutter 3.16.0

[✓] Thiết bị được kết nối (1 thiết bị khả dụng) • sdk gphone x86 arm (di động) • giả lập-5554 • android-x86 • Android 11 (API 30) (trình giả lập)

Trả lời

morpheus Nov 07 2020 at 02:25

Đây là một ví dụ làm việc từ dự án của tôi. Tôi nhớ mình đã từng vấp phải một chuyện như vậy. Tôi viết thư chỉ để đưa ra phản hồi nhanh, không chắc liệu đây có phải là giải pháp chính xác hay không.

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
// import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;

public class Application extends FlutterApplication implements PluginRegistrantCallback {
  @Override
  public void onCreate() {
    super.onCreate();
    FlutterFirebaseMessagingService.setPluginRegistrant(this);
  }

  @Override
  public void registerWith(PluginRegistry registry) {
    registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin");
  }
}
lucasmelo Nov 11 2020 at 19:55

Tôi giải quyết nó bằng cách cập nhật plugin flamingo. không biết chuyện gì xảy ra.