首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当项目已经评估时,颤振无法运行Project.afterEvaluate(闭包)

当项目已经评估时,颤振无法运行Project.afterEvaluate(闭包)
EN

Stack Overflow用户
提问于 2022-02-05 23:52:42
回答 2查看 6.3K关注 0票数 16

解决办法:看起来flutter_tools上有一个信号插件的依赖性。解决方案是将一个信号插件放在“android/app/build.gradle”的序列之后:

代码语言:javascript
复制
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

在将颤振版本从2.8.1升级到2.10之后,我开始得到以下错误。我重新安装了颤振,但结果没有改变。当我将颤振降级到2.8.1时,它工作得很好,但是当我升级到2.10时,它就没有效果了。

代码语言:javascript
复制
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* Where:
Script '/Users/aksoyhlc/flutter/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 421

 What went wrong:
A problem occurred evaluating root project 'android'.
> A problem occurred configuring project ':app'.
   > **Cannot run Project.afterEvaluate(Closure) when the project is already evaluated.**

* 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.

* Get more help at https://help.gradle.org

BUİLD FAILED in 798ms
Exception: Gradle task assembleDebug failed with exit code 1

是android/app/build.gradle文件的一部分

代码语言:javascript
复制
buildscript {
    repositories {
       
        google()  // Google's Maven repository
        maven { url 'https://plugins.gradle.org/m2/' } 
    }
    dependencies {
       
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.6, 0.99.99]'
        classpath 'com.google.gms:google-services:4.3.8'
    }
}
allprojects {

    repositories {
        // Check that you have the following line (if not, add it):
        google()  // Google's Maven repository

    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

android/build.gradle文件

代码语言:javascript
复制
buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.8'

    }


}

allprojects {
    repositories {
        google()
        mavenCentral()
       /* maven {
            url "${project(':background_fetch').projectDir}/libs"
        }*/
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
代码语言:javascript
复制
[✓] Flutter (Channel stable, 2.10.0, on macOS 12.0.1 21A559 darwin-x64, locale
    tr-TR)
    • Flutter version 2.10.0 at /Users/aksoyhlc/flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5f105a6ca7 (4 days ago), 2022-02-01 14:15:42 -0800
    • Engine revision 776efd2034
    • Dart version 2.16.0
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
    • Android SDK at /Users/aksoyhlc/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] VS Code (version 1.64.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (2 available)
    • Redmi Note 8 Pro (mobile) • ------- • android-arm64  • Android 11
      (API 30)
    • Chrome (web)              • chrome           • web-javascript • Google
      Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available
EN

回答 2

Stack Overflow用户

发布于 2022-02-07 05:53:34

看起来flutter_tools上有一个信号插件的依赖性。解决方案是将一个信号插件放在“android/app/build.gradle”的序列之后:

代码语言:javascript
复制
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
票数 5
EN

Stack Overflow用户

发布于 2022-07-21 18:01:27

对于那些还在犯这个错误的人来说。这个解决方案为我工作。

问题是OneSignal插件与Gradle 7.x版本不兼容。因此,您可以修改分级版本,如下所示:

android/gradle/wrapper/gradle-wrapper.properties

代码语言:javascript
复制
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.2-all.zip

android/build.gradle

代码语言:javascript
复制
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.0'
        // OTHERS
    }

然后可以在OneSignal中初始化android/app/build.gradle插件。

代码语言:javascript
复制
buildscript {
    repositories {
        // ...
        maven { url 'https://plugins.gradle.org/m2/' } // Gradle Plugin Portal
    }
    dependencies {
        // ...
        // OneSignal-Gradle-Plugin
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.10, 0.99.99]'
    }
}

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

您应该注意到,OneSignal插件必须放在apply plugin: 'com.android.application'之上,因此将其放置在apply plugin: 'com.android.application'下面可能会导致插件无法按预期工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71003124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档