- ประเด็นคือ Flutter เพิ่ม lib เกียวกับ QRCode Scanner
/** qrcode & barcode scanner */
/** pubspec.yaml */
qrscan: ^0.2.21
image_gallery_saver: ^1.6.7
image_picker: ^0.6.7+17
permission_handler: ^5.0.1+1
url_launcher: ^5.7.10
- แค่เพิ่มใน pubspec บันทึก futter pub get จากนั้นจะสั้งรัน ทั้งที่เรายังไม่ได้ import เลย
import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'package:image_picker/image_picker.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:qrscan/qrscan.dart' as scanner;
- มันขึ้น error ซะงั้น
D8: Cannot fit requested classes in a single dex file (# methods: 76808 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:131)
.................................................................................
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDexDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 15s
[!] The shrinker may have failed to optimize the Java bytecode.
To disable the shrinker, pass the `--no-shrink` flag to this command.
To learn more, see: https://developer.android.com/studio/build/shrink-code
Exception: Gradle task assembleDebug failed with exit code 1
- ตอนแรกนึกว่าเราไปแก้ไข build.gradle มั่วซะอีก แต่ไปเทียบกับโปรเจคอื่นก็เหมือนกันนะ
- ปัญหานี้น่าจะเกี่ยวกัน project นี้ พัฒนาด้วย sdk ที่มีการ update น่าจะประมาณนั้น
Solved
- ที่ไฟล์ android/app/build.gradle เพิ่ม multiDexEnabled true ใน defaultConfig
RefdefaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "juuier.my_smart_app"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
}
- https://stackoverflow.com/questions/46977267/com-android-builder-dexing-dexarchivemergerexception-unable-to-merge-dex-andr