ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【Compose multiplatform教程06】用IDEA编译Compose Multiplatform常见题目 [打印本页]

作者: 忿忿的泥巴坨    时间: 2024-12-30 15:09
标题: 【Compose multiplatform教程06】用IDEA编译Compose Multiplatform常见题目
当我们从Kotlin Multiplatform Wizard | JetBrains 下载ComposeMultiplatform项目时
会遇到无法正常编译/运行的环境,一般网页和桌面是可以正常编译的,
我这里着重办理如下题目
   1:Gradle版本不兼容大概Gradle毗连超时
  2:JDK版本不兼容
  3:Gradle依赖库毗连超时-更换成国内镜像 
  4:Android环境编译
  5:Android 运行到手机/模拟器
  6:IOS平台(后续补充)
  
1:Gradle版本不兼容大概Gradle毗连超时

The project is using an incompatible version (AGP 8.5.2) of the Android Gradle plugin. Latest supported version is AGP 8.2.0
See Android Studio & AGP compatibility options.
[Experimental] Enable sync with future AGP version.
   
该项目正在利用不兼容版本(Android Gradle 插件 8.5.2 版)的 Android Gradle 插件。所支持的最新版本是 Android Gradle 插件 8.2.0 版。
检察 Android Studio 与 Android Gradle 插件的兼容性选项。
[实验性] 启用与未来 Android Gradle 插件版本的同步功能。
  下载最新版本IntelliJ IDEAIntelliJ IDEA 毫无疑问是软件开发者的首选 IDE。 It makes Java and Kotlin development a more productive and enjoyable experience.
https://www.jetbrains.com.cn/idea/promo/?utm_source=baidu&utm_medium=cpc&utm_campaign=cn-bai-br-intellij-ex-pc&utm_content=intellij-core&utm_term=idea
找到gradle/wrapper/gradle-wrapper.properties 文件将修改distributionUrl为符合的版本,我们用由于国外很多gradle依赖链接需要翻墙,我们可以用ai帮我们找符合的地点:
(Gradle国内镜像)南京大学镜像站 下载目录
https://mirrors.nju.edu.cn/gradle/我们可以找个相对符合的版本8.9 直接更换链接,如图 右键复制地点


  
  1. distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
  2. 修改为https://mirrors.nju.edu.cn/gradle/gradle-8.9-bin.ziphttps://mirrors.nju.edu.cn/gradle/gradle-8.9-bin.zip
复制代码
  然后点击小象load图标 load Gradle Changes 同步 快捷键是(ctrl+shift+o) 
  2:JDK版本不兼容

   Your build is currently configured to use Java 21.0.2 and Gradle 8.5.
  Possible solution:
 - Use Java 17 as Gradle JVM: Open Gradle settings 
 - Upgrade Gradle wrapper to 8.9 version and re-import the project
  
   您的构建当前配置为利用 Java 21.0.2 版本和 Gradle 8.5 版本。
  可能的办理方案:
  
  打开工程结构窗口将SDK修改17 
File->roject Structure->roject->SDK: 选择对应版本17 没有的话选择Edit 选择Add SDK选择本地JDK版本,为什么用官方JDK,因为有时候编译打包会莫名其妙的报错,用官网就没题目(血泪的教训)
JDK17下载(强烈保举用官网的JDK)
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

打开Settings输入Gradle JVM找到Build->BuildTools->Gradle->Gradle JVM将版本改成17

下载JDK1Java Archive Downloads
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html下载对应的系统的版本例如
 找到项目根目录local.properties文件添加本地配置属性
  
  1. org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17
复制代码

 3:该项目正在利用不兼容版本(安卓 Gradle 插件 8.5.2 版)的安卓 Gradle 插件。
   The project is using an incompatible version (AGP 8.5.2) of the Android Gradle plugin. Latest supported version is AGP 8.2.0
See Android Studio & AGP compatibility options.
[Experimental] Enable sync with future AGP version.
    该项目正在利用不兼容版本(安卓 Gradle 插件 8.5.2 版)的安卓 Gradle 插件。所支持的最新版本是安卓 Gradle 插件 8.2.0 版。
检察安卓工作室与安卓 Gradle 插件的兼容性选项。
[实验性] 启用与未来安卓 Gradle 插件版本的同步功能。
  办理办法1:
[实验性的] 启用与未来 Android Gradle 插件(AGP)版本的同步。我们可以打开Settings勾选
Enable sync with future AGP version (Experimental) 
然后再点击小象load图标 load Gradle Changes 同步 快捷键是(ctrl+shift+o) 


办理办法2:下载最新的IDEA版本
IntelliJ IDEA – 领先的 Java 和 Kotlin IDE
https://www.jetbrains.com.cn/idea/promo/?utm_source=baidu&utm_medium=cpc&utm_campaign=cn-bai-br-intellij-ex-pc&utm_content=intellij-core&utm_term=idea
3:Gradle依赖库毗连超时-更换成国内镜像 


  1. pluginManagement {
  2.     repositories {
  3.         // 阿里云镜像
  4.         maven("https://maven.aliyun.com/release/")
  5.         // 华为云镜像
  6.         maven("https://mirrors.huaweicloud.com/repository/maven/")
  7.         // 腾讯云镜像
  8.         maven("https://mirrors.cloud.tencent.com/nexus/repository/maven-public/")
  9.         maven("https://jitpack.io")
  10.         maven("https://maven.aliyun.com/repository/gradle-plugin")
  11.         maven("https://maven.aliyun.com/repository/google")
  12.         maven("https://maven.aliyun.com/repository/central")
  13.         maven("https://maven.aliyun.com/repository/public")
  14.         //淘宝镜像源
  15.         maven("https://registry.npmmirror.com")
  16.         //腾讯云镜像源
  17.         maven("https://mirrors.cloud.tencent.com/npm/")
  18.         //官方 CNPM 镜像
  19.         maven("https://r.cnpmjs.org")
  20.         google {
  21.             mavenContent {
  22.                 includeGroupAndSubgroups("androidx")
  23.                 includeGroupAndSubgroups("com.android")
  24.                 includeGroupAndSubgroups("com.google")
  25.             }
  26.         }
  27.         mavenCentral()
  28.         gradlePluginPortal()
  29.     }
  30. }
  31. dependencyResolutionManagement {
  32.     repositories {
  33.         // 阿里云镜像
  34.         maven("https://maven.aliyun.com/release/")
  35.         // 华为云镜像
  36.         maven("https://mirrors.huaweicloud.com/repository/maven/")
  37.         // 腾讯云镜像
  38.         maven("https://mirrors.cloud.tencent.com/nexus/repository/maven-public/")
  39.         maven("https://jitpack.io")
  40.         maven("https://maven.aliyun.com/repository/gradle-plugin")
  41.         maven("https://maven.aliyun.com/repository/google")
  42.         maven("https://maven.aliyun.com/repository/central")
  43.         maven("https://maven.aliyun.com/repository/public")
  44.         //淘宝镜像源
  45.         maven("https://registry.npmmirror.com")
  46.         //腾讯云镜像源
  47.         maven("https://mirrors.cloud.tencent.com/npm/")
  48.         //官方 CNPM 镜像
  49.         maven("https://r.cnpmjs.org")
  50.         google {
  51.             mavenContent {
  52.                 includeGroupAndSubgroups("androidx")
  53.                 includeGroupAndSubgroups("com.android")
  54.                 includeGroupAndSubgroups("com.google")
  55.             }
  56.         }
  57.         mavenCentral()
  58.     }
  59. }
复制代码
 不管是运行Gradle的task哪个任务(kotlin browser->wasmJsBrowserRun)还是运行(other->wasmJsRun),提示的错误,都可以用以上国内镜像源取代:
   Could not resolve com.yarnpkg:yarn:1.22.17.
     Required by:
         project :
      > Could not resolve com.yarnpkg:yarn:1.22.17.
         > Could not get resource 'https://github.com/yarnpkg/yarn/releases/download/v1.22.17/yarn-v1.22.17.tar.gz'.
            > Could not HEAD 'https://github.com/yarnpkg/yarn/releases/download/v1.22.17/yarn-v1.22.17.tar.gz'.
               > Got socket exception during request. It might be caused by SSL misconfiguration
                  > Connect to github.com:443 [github.com/20.205.243.166] failed: Connection timed out: no further information
    Connect to https://github.com:443 [github.com/20.205.243.166] failed: Connection timed out: no further information. If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle
  

4:Android环境编译

Could not find compile target android-34 for modules :composeApp, :shared
点击composeApp\src\androidMain\AndroidManifest.xml
会在右上角表现Install Android plugin 点击后依照提示Next就会主动下载安装,然后重启IDE就可以利用了



   SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at 'D:\pro\ComposeMultiplatform\local.properties'.
 
  1. 找到项目根目录local.properties文件添加本地配置属性,输入你的Android SDK本地路径
复制代码
  org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17

sdk.dir=D\:\\Program Files\\Android\\sdk
    Cannot locate tasks that match ':composeApp:compileJava' as task 'compileJava' is ambiguous in project ':composeApp'. Candidates are: 'compileDebugAndroidTestJavaWithJavac', 'compileDebugJavaWithJavac', 'compileDebugUnitTestJavaWithJavac', 'compileReleaseJavaWithJavac', 'compileReleaseUnitTestJavaWithJavac'.
Clear Project 扫除IDEA缓存 重启IDEA
  打开settings配置Android SDK Manager


5:Android 运行到手机/模拟器

打开Gradle  task列表点击android->sourceSets和signingReport

点击Idea的Run 运行栏打开EditConfigurations
 

Run/Debug configurations选择android ,如下图所示,如果你的本地安装了android adb 现在你就可以在本身android手机上运行compose


6:IOS环境编译 (后续补充)

打开iosApp.xcodeproj 的projec.pb.xpbxproj 在右边会表现Install Multi-OS Engine plugin
点击安装以后 然后重启idea 

在Run/Debug configuratios就可以看到 Multi-OS Engine plugin的配置不过博主没有ios和注册ios相关开发账号 (后续补充)



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4