当前位置: 首页 > news >正文

伊宁市住房与城乡建设局网站厦门网页设计培训学校

伊宁市住房与城乡建设局网站,厦门网页设计培训学校,北京建设工程交易网,免费域名模板建站文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 前段时间升级Android Studio后修复了一堆问题#xff0c;详情请看#xff1a;Android问题记录 - 适配Android Studio Ladybug/Java 21/AGP 8.0#xff08;持续更新#xff09;。我以为问题已经全部解决了… 文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 前段时间升级Android Studio后修复了一堆问题详情请看Android问题记录 - 适配Android Studio Ladybug/Java 21/AGP 8.0持续更新。我以为问题已经全部解决了没想到时隔一个多月在部署项目到新设备时又出现了新问题。 开发环境 Flutter: 3.24.5Android Studio: 2024.2.1 Patch 3Java: 21.0.3Gradle: 8.5Android Gradle Plugin (AGP): 8.3.2Kotlin Gradle Plugin (KGP): 1.7.10 问题描述 项目构建运行后报错部分报错日志如下 e: /xxx/.gradle/caches/transforms-3/552b5fda311668ef6542358a30864490/transformed/jetified-kotlin-stdlib-1.9.24.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1. ...FAILURE: Build failed with an exception.* What went wrong: Execution failed for task :app:compileDebugKotlin.A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction Compilation error. See log for more details ...┌─ Flutter Fix ──────────────────────────────────────────────────────────────────────────────────────────┐ │ [!] Your project requires a newer version of the Kotlin Gradle plugin. │ │ Find the latest version on https://kotlinlang.org/docs/releases.html#release-details, then update the │ │ version number of the plugin with id org.jetbrains.kotlin.android in the plugins block of │ │ /Users/xxx/android/settings.gradle. │ │ │ │ Alternatively (if your project was created before Flutter 3.19), update │ │ /Users/xxx/android/build.gradle │ │ ext.kotlin_version latest-version │ └────────────────────────────────────────────────────────────────────────────────────────────────────────┘问题分析 因为是Flutter项目Flutter还贴心的给出了修复方法升级Kotlin Gradle插件KGP。 先不急着升级有一点很奇怪在日常开发的电脑上运行是正常的。尝试将日常开发环境下的.gradle打包压缩复制到出问题的电脑结果还是不行。 只能先试试升级KGP版本找到Android项目根目录下的settings.gradle修改版本 plugins {id org.jetbrains.kotlin.android version 1.9.24 apply false }如果你还在使用老的写法找到Android项目根目录下的build.gradle修改版本 buildscript {ext.kotlin_version 1.9.24 }这里补充一点ext.kotlin_version指定的是Kotlin编译器的版本不过KGP和Kotlin共享相同的版本号参考官方文档所以实际上这个配置同时指定了KGP的版本反之也是一样。 升级了KGP版本需要升级Gradle或AGP的版本吗通常是不需要的。以下是KGP对Gradle和AGP完全支持的最低以及最高版本范围 参考文档 Configure a Gradle project 从表中可以看到1.9.24的KGP版本完全支持的Gradle版本是6.8.3–8.1.1完全支持的AGP版本是4.2.2–8.1.0。当前项目的Gradle版本是8.5AGP版本是8.3.2这版本是不是都太高了 是的确实都高了。不过这表中列出的是完全支持的版本范围也就是兼容性最好的版本范围不在这范围也是可以用的只不过兼容性可能没那么好。如果需要追求更好的兼容性将KGP版本升级到当前最新的2.1.0也是可行的不过不建议因为第三方库可能还没适配会报错。 升级后重新运行出现新的报错 Execution failed for task :xxx:compileDebugKotlin.Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (1.8) and compileDebugKotlin (21).你可能遇到是类似这样的报错 Execution failed for task :xxx:compileDebugKotlin.Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (1.8) and compileDebugKotlin (17).报错中的compileDebugJavaWithJavac后面跟的版本是由以下配置决定的如果未配置默认是1.8 android {compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8} }compileDebugKotlin后面跟的版本是由以下配置决定的如果未配置会由KGP决定不同版本的KGP对jvmTarget的默认值不同 android {kotlinOptions {jvmTarget 1.8} }报错的依赖库只配置了compileOptions未配置kotlinOptions这导致两者的JVM版本不一致出现冲突。那为什么以前没报错呢我猜测KGP之前的版本对jvmTarget的默认值就是1.8未找到官方文档所以KGP升级之前没有JVM版本不一致问题。 该怎么解决呢尝试在Android项目根目录下的build.gradle中增加以下内容统一设置kotlinOptions subprojects {afterEvaluate {tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinTask -kotlinTask.kotlinOptions.jvmTarget 1.8}} }但这又会导致其他依赖库报错 Execution failed for task :xxx:compileDebugKotlin.Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (17) and compileDebugKotlin (1.8).有些依赖库在compileOptions配置中指定了JavaVersion.VERSION_17版本统一设置kotlinOptions后反而出现了冲突。继续优化一下只对版本不一致的依赖库统一设置 subprojects {afterEvaluate { project -if (project.plugins.hasPlugin(com.android.application) || project.plugins.hasPlugin(com.android.library)) {tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinTask -def sourceCompatibility project.android.compileOptions.sourceCompatibility?.toString() ?: 1.8def jvmTarget kotlinTask.kotlinOptions.jvmTarget ?: if (sourceCompatibility ! jvmTarget) {kotlinTask.kotlinOptions.jvmTarget sourceCompatibilityprintln INFO: Updated jvmTarget for ${project.name} to ${sourceCompatibility}}}}} }重新构建运行一切正常 解决方案 Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1. 请看前面的问题分析并升级Kotlin Gradle插件KGP版本解决。 Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (1.8) and compileDebugKotlin (21). 在Android项目根目录下的build.gradle中增加以下内容解决 subprojects {afterEvaluate { project -if (project.plugins.hasPlugin(com.android.application) || project.plugins.hasPlugin(com.android.library)) {tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinTask -def sourceCompatibility project.android.compileOptions.sourceCompatibility?.toString() ?: 1.8def jvmTarget kotlinTask.kotlinOptions.jvmTarget ?: if (sourceCompatibility ! jvmTarget) {kotlinTask.kotlinOptions.jvmTarget sourceCompatibilityprintln INFO: Updated jvmTarget for ${project.name} to ${sourceCompatibility}}}}} }补充内容 如果是Flutter项目遇到以下报错通常是因为下载指定的Gradle版本失败导致的。可以尝试用Android Studio单独打开Flutter项目下的Android项目并执行Gradle Sync解决。 Exception in thread main java.til.zip.ZipException: zip END header not foundat java.base/java.util.zip.ZipFile$Source.findEND(Unknown Source)at java.base/java.util.zip.ZipFile$Source.initCEN(Unknown Source)at java.base/java.util.zip.ZipFile$Source.init(Unknown Source)at java.base/java.util.zip.ZipFile$Source.get(Unknown Source)at java.base/java.util.zip.ZipFile$CleanableResource.init(Unknown Source)at java.base/java.util.zip.ZipFile.init(Unknown Source)at java.base/java.util.zip.ZipFile.init(Unknown Source)at java.base/java.util.zip.ZipFile.init(Unknown Source)at org.gradle.wrapper.Install.unzip(Install.java:214)at org.gradle.wrapper.Install.access$600(Install.java:27)at org.gradle.wrapper.Install$1.call(Install.java:74)at org.gradle.wrapper.Install$1.call(Install.java:48)at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)...如果是Flutter项目遇到以下报错可能是因为Gradle版本太低导致的可以尝试升级Gradle版本解决。 Warning: Flutter was unable to detect project Gradle, Java, AGP, and KGP versions. Skipping dependency version checking. Error was: org.gradle.internal.exceptions.LocationAwareException: Script /xxx/flutter/packages/flutter_tools/gradle/src/main/kotlin/dependency_version_checker.gradle.kts line: 1 Failed to load compiled script from classpath [/xxx/.gradle/caches/8.5/kotlin-dsl/scripts/da5f7ca28e610c6354c26e9549dbcb59/classes-/xxx/.gradle/caches/jars-9/fb6235f7ef58bafc318ce2cbd09edaf5/classes.jar, /xxx/.gradle/caches/8.5/kotlin-dsl/accessors/3d3fa6fe1c82cb5e6a478c18364a3a05-PS/classes].最后 如果这篇文章对你有所帮助点赞收藏支持一下吧谢谢 本篇文章由crasowas发布于CSDN。
http://www.w-s-a.com/news/177509/

相关文章:

  • 做网站的中文名字汕尾网站开发
  • 网站推广效果推广网站推荐
  • 腾讯企业网站建设网络推广比较经典和常用的方法有
  • 四川成都网站网页设计上海外贸网站制作公司
  • wordpress模板首页图片锦州网站做优化
  • 哔哩哔哩网站建设分析有哪些做网站好的公司
  • 福建建设执业中心网站沧州网络推广外包公司
  • 做网站怎么改关键词营销网站建设818gx
  • 广撒网网站怎么进行网络营销
  • 中职计算机网站建设教学计划电商网站如何避免客户信息泄露
  • 惠州微网站建设外贸进出口代理公司
  • 网站建设最常见的问题建设银行网站机构
  • 网站集群建设相关的招标南通seo网站建设费用
  • 网络培训的网站建设能够做二维码网站
  • 网站类游戏网站开发wordpress 文章首标点
  • 徐州网站建设熊掌号免费推广网站入口2020
  • 网站建设有前途长春高铁站
  • 做网站网课阿里云域名查询系统
  • saas建站平台有哪些简述网站建设基本流程答案
  • 个人怎么做网站网站浏览思路
  • 网站建设里的知识长沙网络营销公司
  • 网站建设与维护大作业pc网站转换成微网站
  • php网站开发经典教材东莞网站开发
  • 教育培训手机网站模板下载跨境电商培训哪家最好
  • 网站开发淄博网站被降权会发生什么影响吗
  • 网站开发常用的语言东城手机网站制作
  • 微小店网站建设平台手机优化加速有什么用
  • 沈阳酒店企业网站制作公司竞价网站怎么做seo
  • 中山企业网站多少钱学网站建设的好处
  • 做官网网站哪家公司好jianux wordpress