flutter - Firestore 问题:CloudFirestorePlugin.java 使用未经检查或不安全的操作
问题描述
安装firestore依赖项后运行我的项目时出现以下错误。我应该怎么办?
注意:C:\src\flutter.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.13.5\android\src\main\java\io\flutter\plugins\firebase\cloudfirestore\CloudFirestorePlugin.java 使用未选中或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。D8:无法在单个 dex 文件中容纳请求的类(#方法:79495 > 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.gradle.internal.transforms .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. org.gradle.workers.internal 的 gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65)。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) 在 org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) 在 org.gradle.internal 的 org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)。 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) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor 的 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) .call(DefaultBuildOperationExecutor.java:102) 在 org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) 在 org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) 在 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。在 org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215) 在 org.gradle 的 java.util.concurrent.FutureTask.run(FutureTask.java:266) 调用(DefaultWorkerExecutor.java:210) .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) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) 在 org.gradle。 internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable .run(ThreadFactoryImpl.java:56) at java.lang.Thread.run(Thread.java:748) 原因:com.android.tools.r8.CompilationFailedException:com.android.tools.r8 编译失败。 utils.ta(:55) at com.android.tools.r8.D8.run(:11) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:116) ... 34 更多原因: com.android.tools.r8.utils.AbortException:错误:null,无法在 com.android.tools.r8.utils.Reporter.a(:21 ) 在 com.android.tools.r8.utils。Reporter.a(:7) at com.android.tools.r8.dex.VirtualFile.a(:33) at com.android.tools.r8.dex.VirtualFile$ha(:5) at 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) at 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获得更多帮助
BUILD FAILED in 5m 31s [!] 收缩器可能未能优化 Java 字节码。要禁用收缩器,请将
--no-shrink
标志传递给此命令。要了解更多信息,请参阅:https ://developer.android.com/studio/build/shrink-code Finished with error: Gradle task assembleDebug failed with exit code 1
解决方案
如果您尚未启用 multidex,请转到
/android/app/build.gradle 并添加
multidrxEnabled true
在默认配置中
它应该如下所示:
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.chat_app_flutter_firebase"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//Enable multidex by adding this line
multiDexEnabled true
}
推荐阅读
- swift - 为什么 Swift 不允许在类 init 中分配给 self,但在协议 init 中却不允许?
- javascript - 使用反应原生应用程序更改 android 主屏幕壁纸
- python - Python二进制RNN时间序列坐标分类
- postgresql - 生成在许多表中禁用外键的脚本
- c - 继续迭代/重复while循环,直到按下回车键(或任意键)
- r - R用另一个对象的ID替换多列中的名称
- python-3.x - IndexError:多级列数据框的列表索引超出范围
- emacs - Emacs:在任何缩进级别折叠单个代码块,而不依赖于括号
- c++ - 从类模板中排除类型
- excel - 如何在 vba 上创建仅小时格式(HH:mm)的文本框