kotlin工程报错

来源:11-3 Flutter Android混合开发实战-集成与调用【Android技术与Flutter融合】

酒剑仙百里东君

2024-04-23

按照课程设置
settings.gradle
添加
include ‘:app’
setBinding(new Binding([gradle: this]))
evaluate(new File( // new
settingsDir.parentFile, // new
’flutter_module/.android/include_flutter.groovy’// new
))
在build.gradle中
dependencies里添加

implementation project(':flutter')

下面2处 不用做修改
defaultConfig {
applicationId "com.example.myapplication"
minSdk 24
targetSdk 33
versionCode 1
versionName “1.0”

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
编译运行之后报错
Executing tasks: [:app:assembleDebug] in project /Users/scott/Desktop/flutter_hybrid/flutter_hybridAndroid

Starting Gradle Daemon…
Gradle Daemon started in 424 ms

FAILURE: Build failed with an exception.

  • Where:
    Script ‘/Users/scott/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy’ line: 219

  • What went wrong:
    A problem occurred evaluating script.

Failed to apply plugin class ‘FlutterPlugin’.
Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by plugin class ‘FlutterPlugin’

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

BUILD FAILED in 2s

写回答

1回答

CrazyCodeBoy

2024-04-24

遇到这种错误 "Failed to apply plugin class ‘FlutterPlugin’. Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by plugin class ‘FlutterPlugin’" 通常意味着在构建配置中存在一些兼容性问题或者配置错误,特别是关于Gradle的处理。这个错误发生的一个常见原因是Gradle的版本与Flutter插件不兼容或者Gradle配置中的某些新特性与现有插件不匹配。

### 解决步骤

#### 1. 检查Gradle版本
确保你的Gradle版本与Flutter当前支持的版本兼容。Flutter的更新可能会依赖于特定版本的Gradle,因此首先确保你的Gradle版本符合要求。

- **查看和修改Gradle版本**:
  打开 `android/gradle/wrapper/gradle-wrapper.properties` 文件,并检查或更新 `distributionUrl` 属性到推荐的Gradle版本。

  ```properties
  distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
  ```

#### 2. 检查Gradle设置
如果项目中使用了Gradle的特定设置,如 `dependencyResolutionManagement`,可能需要调整这些设置以避免兼容性问题。

- **编辑根目录的 settings.gradle 文件**:
  如果使用了以下配置,可能会导致上述错误:
  ```groovy
  dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
  }
  ```
  可以尝试注释掉这部分代码或更改其设置,以检查是否是此配置引起的问题。

#### 3. 清理和重新构建项目
有时候,简单的清理和重新构建项目可以解决构建时遇到的问题:

```bash
flutter clean
```

然后:

```bash
flutter pub get
```

最后尝试再次运行或构建项目。

#### 4. 检查Flutter插件和SDK版本
确保你的Flutter SDK和所有相关的插件都是最新的,或者至少是与项目兼容的版本。

- **升级Flutter SDK**:
  打开终端并执行:

  ```bash
  flutter upgrade
  ```

- **升级项目依赖**:
  检查 `pubspec.yaml` 中的依赖是否最新,或者是否存在已知的与Gradle设置不兼容的问题。

#### 5. 检查插件的配置
在一些情况下,插件的内部配置可能会引起问题。查看相关插件的文档,看是否有关于Gradle配置的特殊说明。

### 总结
这个问题通常涉及到Gradle配置或版本兼容性问题,跟随上述步骤应该可以帮助你诊断和解决大多数相关问题。如果问题仍然存在,可能需要在Flutter社区寻求帮助或查看该问题的相关GitHub Issue讨论。
0
0

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3277 问题

查看课程