如何修复 Kotlin Multiplatform Mobile gradle 红色错误

问题描述 投票:0回答:4

我创建了一个新的 KMM 项目,但所有 Gradle 文件中都出现红色错误

医生:

[v] System                                           
    OS: macOS (12.5.1)
    CPU: Apple M1 Pro
[v] Java
    Java (openjdk version "17.0.4" 2022-07-19 LTS)
    Location: /Library/Java/JavaVirtualMachines/openjdk17-corretto/Contents/Home/bin/java
    
    JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk17-corretto/Contents/Home
    
    * Note that, by default, Android Studio uses bundled JDK for Gradle tasks execution.
          Gradle JDK can be configured in Android Studio Preferences under Build, Execution, Deployment -> Build Tools -> Gradle section
    
[v] Android Studio
    Android Studio (2021.2)
    Location: /Users/ahmedhnewa/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/212.5712.43.2112.8815526/Android Studio.app
    Bundled Java: openjdk 11.0.12 2021-07-20
    Kotlin Plugin: 212-1.7.10-release-333-AS5457.46
    Kotlin Multiplatform Mobile Plugin: 0.3.3(212-1.7.0-RC-release-217-IJ)-104
    
[v] Xcode
    Xcode (13.4.1)
    Location: /Applications/Xcode.app
    
[x] Cocoapods
    ruby (ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21])
    
    * System ruby is currently used
          CocoaPods is not compatible with system ruby installation on Apple M1 computers.
          Please install ruby 2.7 via Homebrew, rvm, rbenv or other tool and make it default
    
    ruby gems (3.0.3.1)
    
    cocoapods (1.11.3)
    
    * cocoapods-generate plugin not found
          Get cocoapods-generate from https://github.com/square/cocoapods-generate#installation
    
Failures: 1
KDoctor has diagnosed one or more problems while checking your environment.
Please check the output for problem description and possible solutions.

我创建了一个带有常规 ios 分发框架的项目。 我什至尝试使用 homebrew 安装 ruby 2.7,并将路径添加到 env,错误仍然相同,所以我将所有更改恢复回来

settings.gradle.kts:
pluginManagement {
    repositories {
        google()
        gradlePluginPortal()
        mavenCentral()
    }
}

rootProject.name = "DemoKMM"
include(":androidApp")
include(":shared")

build.gradle.kts:

buildscript {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10")
        classpath("com.android.tools.build:gradle:7.2.2")
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

tasks.register("clean", Delete::class) {
    delete(rootProject.buildDir)
}

The error

我尝试了太多解决方案,我已经阅读了文档,但没有任何效果。

android android-studio kotlin gradle-kotlin-dsl kotlin-multiplatform-mobile
4个回答
4
投票

enter image description here此问题的原因 Kdoctor 采用默认系统 ruby 版本,该版本不支持 KMM,因此安装任何 ruby 版本管理,例如

brew install rbenv
,然后
rbenv install 2.7.0
它将安装 ruby 2.7.0,然后添加路径
vim ~/.zshrc
添加路径
export PATH="$HOME/.rbenv/versions/2.7.0/bin:$PATH"

注意事项: 确保添加 :$PATH 到最后,如果没有,系统 ruby 将根据路径顺序优先于安装路径

如有疑问请评论


3
投票

我在配备 M1 的 Mac mini 上也遇到了同样的问题。我认为主要问题是你需要确保 cocoapods 运行在 Ruby 2.6 或 2.7 上,而不是 3.1 上。

我发现你使用 homebrew 安装 cocoapods 它也会安装 Ruby 3.1,如下所示:

% pod env --verbose

### Stack

```
   CocoaPods : 1.11.3
        Ruby : ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21]
    RubyGems : 3.3.11
        Host : macOS 12.5.1 (21G83)
       Xcode : 13.4.1 (13F100)
         Git : git version 2.37.3
Ruby lib dir : /opt/homebrew/Cellar/ruby/3.1.2_1/lib

我所做的是使用 homebrew 卸载 Ruby 3.1:

% brew uninstall [email protected]
% brew uninstall cocoapods

安装 ruby 2.6 或 2.7

% brew install [email protected]

使用 gem install 安装 cocoapods:

% gem install cocoapods

最后验证cocoapods环境:

luix@mac-mini android % pod env --verbose
### Stack

```
   CocoaPods : 1.11.3
        Ruby : ruby 2.6.10p210 (2022-04-12 revision 67958) [arm64-darwin21]
    RubyGems : 3.0.3.1
        Host : macOS 12.5.1 (21G83)
       Xcode : 13.4.1 (13F100)
         Git : git version 2.37.3
Ruby lib dir : /opt/homebrew/Cellar/[email protected]/2.6.10/lib

这对我有用,希望对你也有用。


0
投票

我刚刚将 Android Studio 更新为 Electric Eel (2022.1.1) 和 KMM 插件就解决了

Error is gone

编辑2:

这个问题再次出现在我面前,

我已经通过删除 android studio 及其所有文件(包括 ~/.android、~/.gradle)解决了这个问题

所以即使是所有使用gradle的IDE,所以我只是删除了.gradle的缓存文件夹

我还删除了 Android SDK 和所有内容

您可以使用 App Cleaner 之类的东西,尽管我不太信任该应用程序,因为它不是开源的

将android studio拖入其中,如果您使用JetBrains工具箱安装Android Studio,请找到它的路径并在工具箱中打开并拖放

在单击“卸载”之前,请先从 JetBrains 工具箱中单击它,然后从应用程序清理器中卸载它

并进行全新安装,只需安装 KMM 插件,无需安装任何东西,例如 Flutter 插件和所有这些东西

如果您想使用终端手动删除所有内容,请在 Stackoverflow 上查看此内容

虽然我确实解决了问题,但我仍然不知道问题到底是什么,

我需要知道,这样我才能确保这种情况不会再次发生,

如果你知道请分享你的想法

请关注此


0
投票

我有同样的问题,这就是我解决它的方法:

  1. 使用自制软件下载最新的 ruby

    brew install ruby

  2. 将最近的 ruby 下载位置添加到 PATH

    echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc

  3. 应用更改即可开始!

    source ~./zshrc

kdoctor

© www.soinside.com 2019 - 2024. All rights reserved.