Cha*_*dru 18 dart firebase firebase-authentication flutter google-cloud-firestore
我一直在尝试在 Android / IOS flutter 应用程序中使用 auth、firestore firebase,并且在测试了几个不同的版本后遇到了许多不同的问题。现在它在构建日志中向我显示了几条消息。
构建日志
注意:D:\Flutter\SDK\flutter.pub-cache\hosted\pub.dartlang.org\firebase_core-0.4.3+1\android\src\main\java\io\flutter\plugins\firebase\core\FirebaseCorePlugin .java 使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:D:\Flutter\SDK\flutter.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.13.0+1\android\src\main\java\io\flutter\plugins\firebase\cloudfirestore\CloudFirestorePlugin .java 使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。D8:无法在单个 dex 文件中容纳请求的类(# 方法:81454 > 65536)com.android.builder.dexing.DexArchiveMergerException:合并 dex 档案时出错:.dex 文件中的方法引用数不能超过 64K。了解如何解决此问题,请访问 https://developer.android.com/tools/building/multidex.html 在 com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:131) 在 com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:118) 在 com.android.build.transgradle .DexMergerTransformCallable.call(DexMergerTransformCallable.java:102) 在 com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:444) 在 com.android.build.gradle.internal.tasks.Workers$ActionFacade .run(Workers.kt:335) at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:50) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47) at org. gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65)
Run Code Online (Sandbox Code Playgroud)at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:61) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:56) at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:215) at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:210) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.lang.Thread.run(Thread.java:748) Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to在 com.android.tools.r8.utils.ta(:55) 在 com.android.tools.r8.D8.run(:11) 在 com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java: 116) ... 34 导致:com.android.tools.r8.utils.AbortException:错误:空,无法在 com.android.tools 的单个 dex 文件(# 方法:81454 > 65536)中容纳请求的类。 r8.utils.Reporter.a(:21) 在 com.android.tools.r8.utils.Reporter.a(:7) 在 com.android.tools.r8.dex.VirtualFile.a(:33) 在 com。 android.tools.r8.dex.VirtualFile$ha(:5) 在 com.android.tools.r8.dex.ApplicationWriter.a(:13) 在 com.android.tools.r8.dex.ApplicationWriter.write(:35) ) 在 com.android.tools.r8.D8.d(:44) 在 com.android.tools.r8.D8.b(:1) 在 com.android.tools.r8。utils.ta(:23) ... 36 更多
FAILURE:构建失败,出现异常。
出了什么问题:任务 ':app:mergeDexDebug' 执行失败。
执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.builder.dexing.DexArchiveMergerException 时发生故障:合并 dex 档案时出错:.dex 文件中的方法引用数不能超过 64K。在https://developer.android.com/tools/building/multidex.html了解如何解决此问题
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
- 在https://help.gradle.org获取更多帮助
在 4m 33s 内构建失败
颤振医生 -v
[?] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18362.535], locale en-IN)
Run Code Online (Sandbox Code Playgroud)• Framework revision 27321ebbad (3 weeks ago), 2019-12-10 18:15:01 -0800 • Engine revision 2994f7e1e6 • Dart version 2.7.0
[?] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2)
Run Code Online (Sandbox Code Playgroud)• Android NDK location not configured (optional; useful for native profiling support) • Platform android-29, build-tools 29.0.2 • Java binary at: D:\Android SDK\jre\bin\java • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03) • All Android licenses accepted.
[?] Android Studio(3.5 版)
Run Code Online (Sandbox Code Playgroud)• Flutter plugin version 41.1.2 • Dart plugin version 191.8593 • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
公共规格
dependencies:
flutter:
sdk: flutter
firebase_auth: ^0.15.3
cloud_firestore: ^0.13.0+1
Run Code Online (Sandbox Code Playgroud)
build.gradle(android)
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.0'
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*dad 21
您需要使用以下插件:
dependencies:
firebase_auth: ^0.15.3
cloud_firestore: ^0.13.0+1
Run Code Online (Sandbox Code Playgroud)
不要忘记配置firebase:
https://pub.dev/packages/cloud_firestore#setup
https://pub.dev/packages/firebase_auth#usage
同样在您的 中app/build.gradle,增加minSdkVersion:
改变这个:
minSdkVersion 16
Run Code Online (Sandbox Code Playgroud)
进入这个:
minSdkVersion 23
Run Code Online (Sandbox Code Playgroud)
小智 6
为了使用低于 21 的minSdkVersion,您必须将您的应用程序配置为 multidex,如下所示:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 28
multiDexEnabled true
}
...
}
dependencies {
implementation "androidx.multidex:multidex:2.0.1"
}
Run Code Online (Sandbox Code Playgroud)
之后请运行
flutter pub upgrade
flutter pub get
flutter clean
flutter run
Run Code Online (Sandbox Code Playgroud)
在flutter clean之后它仍然会抛出警告,但至少可以支持早期版本。更多内容请查看官方文档
| 归档时间: |
|
| 查看次数: |
27341 次 |
| 最近记录: |