Flutter Firebase Notification Messeging

Nov 07 2020

Saya mencoba menerapkan firebase_messaging di aplikasi flutter saya. Pada Integrasi Android ketika saya menulis kode tingkat Aplikasi asli, saya mendapat kesalahan untuk kelas duplikat tetapi tidak tahu mengapa.

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: Jenis program sudah ada: com.project.my_project.Application com.android.builder.dexing.DexArchiveMergerException: Kesalahan saat menggabungkan arsip dex: Pelajari cara menyelesaikan masalah di https://developer.android.com/studio/build/dependencies#duplicate_classes. Jenis program sudah ada: com.project.my_project.Application di com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow (D8DexArchiveMerger.java:131) di com.android.builder.dexing.D8DexArchiveMerger.Archives.java di com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call (DexMergerTransformCallable.java:102) di com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run (DexMergingTask.kt: 444) ...

  • Apa yang salah: Eksekusi gagal untuk tugas ': app: mergeProjectDexDebug'.

Terjadi kegagalan saat menjalankan com.android.build.gradle.internal.tasks.Workers $ ActionFacade com.android.builder.dexing.DexArchiveMergerException: Kesalahan saat menggabungkan arsip dex: Pelajari cara menyelesaikan masalah di https://developer.android.com/studio/build/dependencies#duplicate_classes. Jenis program sudah ada: com.project.my_project.Application <

flutter doctor [✓] Flutter (Channel stable, 1.22.3, di Mac OS X 10.15.7 19H2, locale pt-BR) • Flutter versi 1.22.3 di / Users / developer / Documents / Documents / Development / flutter • Revisi framework 8874f21e79 (8 hari yang lalu), 2020-10-29 14:14:35 -0700 • Revisi engine a1440ca392 • Dart versi 2.10.3

[✓] Toolchain Android - kembangkan untuk perangkat Android (SDK Android versi 30.0.2) • SDK Android di / Users / developer / Library / Android / sdk • Platform android-30, build-tools 30.0.2 • Java binary di: / Aplikasi / Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Versi Java OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593) • Semua lisensi Android diterima.

[✓] Xcode - kembangkan untuk iOS dan macOS (Xcode 12.1) • Xcode di /Applications/Xcode.app/Contents/Developer • Xcode 12.1, Build versi 12A7403 • CocoaPods versi 1.10.0

[!] Android Studio (versi 4.1) • Android Studio di / Applications / Android Studio.app/Contents ✗ Plugin Flutter tidak diinstal; ini menambahkan fungsionalitas khusus Flutter. (Sekalipun tahu bahwa pemasangannya berfungsi) ✗ Plugin Dart tidak terpasang; ini menambahkan fungsionalitas khusus Dart. (Meskipun sudah terinstal dan berfungsi) • Versi Java OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (versi 1.50.1) • VS Code di / Applications / Visual Studio Code.app/Contents • Flutter extension versi 3.16.0

[✓] Perangkat yang terhubung (1 tersedia) • sdk gphone x86 arm (seluler) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)

Jawaban

morpheus Nov 07 2020 at 02:25

Ini adalah contoh kerja dari proyek saya. Saya ingat pernah mengalami hal seperti itu. Saya menulis hanya untuk memberikan tanggapan cepat, tidak yakin apakah ini solusi yang tepat.

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

Saya mengatasinya dengan mengambil pembaruan plugin flutter. tidak tahu apa yang terjadi.