flutter编译e: Daemon compilation failed: null java.lang.Exception错误解决

news2024/12/12 5:53:49

在这里插入图片描述

文章目录

  • 错误描述
  • 解决方法
      • 修复步骤
        • 1. 清理项目缓存
        • 2. 检查项目路径一致性
        • 3. 强制禁用增量编译
        • 4. 更新依赖项
        • 5. 检查 Kotlin 和 Gradle 插件版本
        • 6. 删除 Kotlin 编译器守护进程
        • 7. 重新编译项目

错误描述

flutter应用编译时报如下错误e: Daemon compilation failed: null
java.lang.Exception
at org.jetbrains.kotlin.daemon.common.CompileService C a l l R e s u l t CallResult CallResultError.get(CompileService.kt:69)
at org.jetbrains.kotlin.daemon.common.CompileService C a l l R e s u l t CallResult CallResultError.get(CompileService.kt:65)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:244)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:175)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:135)
at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:73)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
at org.gradle.workers.internal.NoIsolationWorkerFactory 1. l a m b d a 1.lambda 1.lambdaexecute$0(NoIsolationWorkerFactory.java:62)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker 1. c a l l ( A b s t r a c t W o r k e r . j a v a : 41 ) a t o r g . g r a d l e . i n t e r n a l . o p e r a t i o n s . D e f a u l t B u i l d O p e r a t i o n R u n n e r 1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner 1.call(AbstractWorker.java:41)atorg.gradle.internal.operations.DefaultBuildOperationRunnerCallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory 1. e x e c u t e ( N o I s o l a t i o n W o r k e r F a c t o r y . j a v a : 59 ) a t o r g . g r a d l e . w o r k e r s . i n t e r n a l . D e f a u l t W o r k e r E x e c u t o r . l a m b d a 1.execute(NoIsolationWorkerFactory.java:59) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda 1.execute(NoIsolationWorkerFactory.java:59)atorg.gradle.workers.internal.DefaultWorkerExecutor.lambdasubmitWork 2 ( D e f a u l t W o r k e r E x e c u t o r . j a v a : 205 ) a t j a v a . b a s e / j a v a . u t i l . c o n c u r r e n t . F u t u r e T a s k . r u n ( F u t u r e T a s k . j a v a : 264 ) a t o r g . g r a d l e . i n t e r n a l . w o r k . D e f a u l t C o n d i t i o n a l E x e c u t i o n Q u e u e 2(DefaultWorkerExecutor.java:205) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.work.DefaultConditionalExecutionQueue 2(DefaultWorkerExecutor.java:205)atjava.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)atorg.gradle.internal.work.DefaultConditionalExecutionQueueExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access 700 ( D e f a u l t C o n d i t i o n a l E x e c u t i o n Q u e u e . j a v a : 120 ) a t o r g . g r a d l e . i n t e r n a l . w o r k . D e f a u l t C o n d i t i o n a l E x e c u t i o n Q u e u e 700(DefaultConditionalExecutionQueue.java:120) at org.gradle.internal.work.DefaultConditionalExecutionQueue 700(DefaultConditionalExecutionQueue.java:120)atorg.gradle.internal.work.DefaultConditionalExecutionQueueExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162)
at org.gradle.internal.Factories 1. c r e a t e ( F a c t o r i e s . j a v a : 31 ) a t o r g . g r a d l e . i n t e r n a l . w o r k . D e f a u l t W o r k e r L e a s e S e r v i c e . w i t h L o c k s ( D e f a u l t W o r k e r L e a s e S e r v i c e . j a v a : 249 ) a t o r g . g r a d l e . i n t e r n a l . w o r k . D e f a u l t W o r k e r L e a s e S e r v i c e . r u n A s W o r k e r T h r e a d ( D e f a u l t W o r k e r L e a s e S e r v i c e . j a v a : 109 ) a t o r g . g r a d l e . i n t e r n a l . w o r k . D e f a u l t W o r k e r L e a s e S e r v i c e . r u n A s W o r k e r T h r e a d ( D e f a u l t W o r k e r L e a s e S e r v i c e . j a v a : 114 ) a t o r g . g r a d l e . i n t e r n a l . w o r k . D e f a u l t C o n d i t i o n a l E x e c u t i o n Q u e u e 1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114) at org.gradle.internal.work.DefaultConditionalExecutionQueue 1.create(Factories.java:31)atorg.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)atorg.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)atorg.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114)atorg.gradle.internal.work.DefaultConditionalExecutionQueueExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157)
at org.gradle.internal.work.DefaultConditionalExecutionQueue E x e c u t i o n R u n n e r . r u n ( D e f a u l t C o n d i t i o n a l E x e c u t i o n Q u e u e . j a v a : 126 ) a t j a v a . b a s e / j a v a . u t i l . c o n c u r r e n t . E x e c u t o r s ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) at java.base/java.util.concurrent.Executors ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126)atjava.base/java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl 1. r u n ( M a n a g e d E x e c u t o r I m p l . j a v a : 48 ) a t j a v a . b a s e / j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( T h r e a d P o o l E x e c u t o r . j a v a : 1128 ) a t j a v a . b a s e / j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r 1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor 1.run(ManagedExecutorImpl.java:48)atjava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)atjava.base/java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: this and base files have different roots: C:\Users\YUAN\AppData\Local\Pub\Cache\hosted\pub.dev\wakelock-0.6.2\android\src\main\kotlin\creativemaybeno\wakelock\Wakelock.kt and D:\WORK\myLearningWork\development\learning\android.
at kotlin.io.FilesKt__UtilsKt.toRelativeString(Utils.kt:117)
at kotlin.io.FilesKt__UtilsKt.relativeTo(Utils.kt:128)
at org.jetbrains.kotlin.incremental.storage.RelocatableFileToPathConverter.toPath(RelocatableFileToPathConverter.kt:22)
at org.jetbrains.kotlin.incremental.storage.ComplementarySourceFilesMap.get(ComplementarySourceFilesMap.kt:22)
at org.jetbrains.kotlin.incremental.AbstractIncrementalCache.getComplementaryFilesRecursive(AbstractIncrementalCache.kt:219)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:455)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:400)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:281)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:125)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:657)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:105)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1624)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport 1. r u n ( T r a n s p o r t . j a v a : 197 ) a t j a v a . b a s e / j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) a t j a v a . r m i / s u n . r m i . t r a n s p o r t . T r a n s p o r t . s e r v i c e C a l l ( T r a n s p o r t . j a v a : 196 ) a t j a v a . r m i / s u n . r m i . t r a n s p o r t . t c p . T C P T r a n s p o r t . h a n d l e M e s s a g e s ( T C P T r a n s p o r t . j a v a : 562 ) a t j a v a . r m i / s u n . r m i . t r a n s p o r t . t c p . T C P T r a n s p o r t 1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport 1.run(Transport.java:197)atjava.base/java.security.AccessController.doPrivileged(NativeMethod)atjava.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)atjava.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)atjava.rmi/sun.rmi.transport.tcp.TCPTransportConnectionHandler.run0(TCPTransport.java:796)
at java.rmi/sun.rmi.transport.tcp.TCPTransport C o n n e c t i o n H a n d l e r . l a m b d a ConnectionHandler.lambda ConnectionHandler.lambdarun 0 ( T C P T r a n s p o r t . j a v a : 677 ) a t j a v a . b a s e / j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) a t j a v a . r m i / s u n . r m i . t r a n s p o r t . t c p . T C P T r a n s p o r t 0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport 0(TCPTransport.java:677)atjava.base/java.security.AccessController.doPrivileged(NativeMethod)atjava.rmi/sun.rmi.transport.tcp.TCPTransportConnectionHandler.run(TCPTransport.java:676)
… 3 more
image.png

解决方法

从错误日志可以看出,问题的核心是 Kotlin 编译器守护进程(Kotlin Compiler Daemon)在进行增量编译时出现了异常,并伴随文件路径的根目录不一致问题。

错误原因主要包括:

  1. 路径冲突C:\Users\YUAND:\WORK 是两个不同的路径根目录,Kotlin 编译器可能无法正确解析它们的相对路径关系。
  2. 增量编译问题:Kotlin 的增量编译缓存可能损坏,导致编译失败。
  3. 插件或依赖问题:可能是依赖的插件(如 wakelock)或编译器配置存在问题。

修复步骤

1. 清理项目缓存

清除所有缓存和生成的中间文件:

flutter clean

然后删除 build 文件夹和 .gradle 文件夹:

rm -rf android/.gradle
rm -rf build

重新获取依赖和编译:

flutter pub get
flutter build apk

2. 检查项目路径一致性

确保你的项目和所有依赖项都在同一个磁盘分区内。将项目移动到与 Flutter SDK 相同的磁盘。例如,把项目从 D:\WORK 移动到 C:\Users\YUAN 下的某个子文件夹。


3. 强制禁用增量编译

增量编译虽然能加快编译速度,但在某些情况下会引发问题。尝试在 android/gradle.properties 文件中添加以下内容:

kotlin.incremental=false

4. 更新依赖项

某些旧版插件可能与当前的 Flutter 或 Kotlin 编译器版本不兼容。更新依赖项:

  • 确保 pubspec.yaml 中插件的版本是最新的:
    wakelock: ^0.6.2+2
    
  • 运行以下命令更新依赖:
    flutter pub upgrade
    

5. 检查 Kotlin 和 Gradle 插件版本
  • 确保你的 Kotlin 和 Gradle 插件版本匹配:
    • 检查 android/build.gradle 中的 Gradle 插件版本(例如,com.android.tools.build:gradle:7.4.2)。
    • 检查 android/gradle/wrapper/gradle-wrapper.properties 中的 Gradle 版本(例如,distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip)。
    • 检查 kotlin_version 是否与 Gradle 插件版本兼容:
      ext.kotlin_version = "1.8.22"
      

可以参考 Gradle Plugin Compatibility Table 确保版本一致。


6. 删除 Kotlin 编译器守护进程

Kotlin 守护进程可能有残留。尝试终止守护进程并清理相关缓存:

pkill -f kotlin-daemon

如果你在 Windows 上,手动结束 Kotlin 守护进程相关任务。


7. 重新编译项目

执行以下命令进行完整编译:

flutter build apk


结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何通过看板进行跨境电商的圣诞商品数据分析与优化选品流程?

引言 随着圣诞季的临近,跨境电商迎来了重要的销售时机。选品工作对于跨境电商的成功至关重要,直接关系到销售业绩和利润。本文结合相关网页信息,深入探讨跨境电商在圣诞期间如何利用信息整合工具展开选品工作,并优化选品流程。同…

Maven学习(依赖版本维护、依赖传递、解决Maven依赖冲突的3种方式)

目录 一、Maven的依赖版本维护。 (1)为什么需要依赖版本维护? (2)依赖统一管理的具体操作步骤。 第一步。在pom.xml文件中使用标签定义jar包的版本。 第二步。在的对应jar的中使用"${}"引入上面定义好的版本…

OpenCV 功能函数介绍

一, 二值化函数 功能: 用于对图像进行二值化处理 参数: cv2.threshold(输入你的图像所对应的灰度图, 阈值:是浮点还是整数取决予图像的数据类型 最大值;高于阈值的像素值, 阈值类型:cv2.THR…

JAVA根据Word模板生成word文件

本次要做一个小工具&#xff0c;读取excel数据&#xff0c;然后生成word文件。 直接上代码&#xff1a; 一、引用包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dep…

什么是定性数据分析?有哪些定性数据分析技术及应用实践?

众所周知&#xff0c;定性数据分析软件&#xff08;QDA 软件&#xff09;为研究人员提供了显著的优势&#xff0c;特别是在节省文书工作时间方面&#xff0c;“让研究人员可以从事更有意义的分析工作”。 使用它是从事实际有效研究的最关键步骤之一。然而&#xff0c;知道您需要…

【前端】JavaScript中的闭包与垃圾回收机制详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;垃圾回收机制&#xff08;Garbage Collection, GC&#xff09;垃圾回收的核心原理核心过程 函数作用域与垃圾回收运行分析输出结果 垃圾回收的局限性与挑战 &#x1f4a…

android studio 读写文件操作(应用场景三)

android studio版本&#xff1a;2023.3.1 patch2 例程&#xff1a;filesaveandread 其实我写这个都是我记录我要做后个数独小游戏&#xff0c;每一个都是为了解决一个问题。即是分享也是备忘&#xff0c;反正我什么都不会&#xff0c;就是一顿瞎改&#xff0c;不行就研究。这…

分库分表基本概念讲解

一、基本概念 产生背景 在数据爆炸的年代&#xff0c;单表数据达到千万级别&#xff0c;甚至过亿的量&#xff0c;都是很常见的情景。这时候再对数据库进行操作就是非常吃力的事情了&#xff0c;select个半天都出不来数据&#xff0c;这时候业务已经难以维系。不得已&#xf…

华为自反ACL实验

一、实验背景 做这个实验的原因是最近公司里上了三台小程序服务器&#xff0c;由于三台服务器的端口都映射出去了&#xff0c;领导要求A网段的三台服务器不能访问内网B&#xff0c;C网段&#xff0c;同时B、C网段内网用户可以访问A段的94、95、96服务器&#xff1b; 也就是PC4\…

美图撕掉蔡文胜标签

卖掉比特币的美图不投机了。 作者|周立青 编辑|杨舟 12月5日&#xff0c;比特币突破10万美元大关&#xff0c;曾花费1亿美元购入虚拟货币的美图宣布已出售所有加密货币。 美图在港交所发布公告称&#xff0c;自2024年11月起&#xff0c;公司已开始出售其持有的加密货币&…

git拉取代码报错问题:Pulling is not possible because you have unmerged files. hint

我们在工作中&#xff0c;需要切换到另外一个分支&#xff0c;拉取代码的时候会报这样的问题&#xff1a; Pulling is not possible because you have unmerged files. hint: Fix them up in the work tree, and then use git add/rm <file> hint: as appropriate to ma…

青训营-豆包MarsCode技术训练营试题解析三十七

引言 随着AI领域的发展&#xff0c;底层算法确实起到了决定性的作用。为了跟上这个快速发展的领域&#xff0c;我们需要不断学习和提升自己的技能。刷题是一种很好的方式&#xff0c;可以帮助我们巩固基础知识&#xff0c;提高解决问题的能力。 介绍 ‌豆包青训营‌是由字节…

openlayers地图缓存添加

//通过安装包localforage&#xff08;npm install localforage&#xff09;或https://cdnjs.cloudflare.com/ajax/libs/localforage/1.10.0/localforage.min.js tileCacheStore.js import localforage from localforage var tileCacheStorenull;// 从缓存中获取该瓦片 functio…

《IP 电话:选型指南与应用优势》

《IP 电话&#xff1a;选型指南与应用优势》 一、IP 电话概述二、IP 电话的选型1. 功能与应用2. 性能及可靠性3. 兼容及可升级性4. 外观设计及管理需求5. 性价比 三、IP 电话的应用场景1. 企业办公2. 工厂和仓库3. 酒店和旅游业4. 医疗机构5. 零售业6. 教育机构7. 个人用户 四、…

解决Logitech G hub 无法进入一直转圈的方案(2024.12)

如果你不是最新版本无法加载尝试以下方案&#xff1a;删除AppData 文件夹下的logihub文件夹 具体路径&#xff1a;用户名根据实际你的请情况修改 C:\Users\Administrator\AppData\Local 如果你有通过lua编译脚本&#xff0c;记得备份&#xff01;&#xff01; ↓如果你是最新…

[网络爬虫] Jsoup : HTML 解析工具

1 概述 简介 Jsoup是一款基于Java的HTML解析器&#xff0c;它提供了一种简单、灵活且易于使用的API&#xff0c;用于从URL、文件或字符串中解析HTML文档。它可以帮助开发人员从HTML文档中提取数据、操作DOM元素、处理表单提交等。 主要特点 Jsoup的主要特点包括&#xff1a; 简…

top命令和系统负载

1 top中的字段说明 top是一个实时系统监视工具&#xff0c;可以动态展现出 CPU 使用率、内存使用情况、进程状态等信息&#xff0c;注意这些显示的文本不能直接使用 > 追加到文件中。 [rootvv~]# top -bn 1 | head top - 20:08:28 up 138 days, 10:29, 4 users, load av…

golang实现简单的redis服务4(实现过期时间功能)

为什么要做过期时间?redis失效时间是如何做的redis有那些过期策略,优缺点,实现原理?redis使用的什么方案 redis 有那些内存淘汰策略?常用的是什么,为什么?noeviction: 不处理lru: 未使用时间最久的keylfu: 使用次数最少的keyrandom: 随机keyvolatile与allkeys的区别 仓库地…

VMware:如何在CentOS7上开启22端口

打开虚拟机&#xff1a;【编辑】【虚拟机网络设置】 其中填入的虚拟机IP地址是虚拟机中centos的IP地址&#xff0c;虚拟机端口为需要映射的centos端口 配置好之后保存&#xff0c;打开宿主机 win cmd telnet 192.168.1.26 22 如果出现上述窗口&#xff0c;则说明已经成功开放…

项目中使用AntV L7地图(五)添加飞线

项目中使用AntV L7地图&#xff0c;添加 飞线 文档地址&#xff1a;https://l7.antv.antgroup.com/zh/examples/line/animate/#trip_animate 一、初始化地图 使用的地图文件为四川地图JSON&#xff0c;下载地址:https://datav.aliyun.com/portal/school/atlas/area_selector#&…