在根项目“ android”中找不到任务“ assembleRelease”

时间:2018-07-18 08:41:22

标签: android react-native gradle azure-devops gradlew

我正在使用 Reactivenative 0.54.0 react-native-cli 2.0.1 以及 gradle 4.8.1

>

我使用 create-react-native-app myProjectName

创建了一个本机项目。

创建项目时,它不包含android和ios文件夹,因此我手动添加了它们。

我还使用 choco 安装了gradle,然后使用 gradle wrapper --gradle-version 4.8.1 --distribution-type all

所以我正在使用Microsoft vsCode 开发react-native,然后使用 Genymotion 模拟器查看我的应用程序的运行情况,一切都很好

现在,我想为游戏商店生成最终的 Signed APK ,我正在使用react-native提供的指南

https://facebook.github.io/react-native/docs/signed-apk-android.html

当我想运行 gradlew assembleRelease 时,出现此错误

C:\myApp\android>gradlew assembleRelease

FAILURE: Build failed with an exception.

* What went wrong:
Task 'assembleRelease' not found in root project 'android'.

* Try:
Run gradlew tasks to get a list of available tasks. 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

BUILD FAILED in 4s

assembleRelease有什么问题?我该怎么办?

要添加更多信息,我不得不说,当我想在VSTS(TFS在线)中构建此项目时,会出现此错误

2018-07-17T16:20:14.9268702Z ##[error]Error: Not found wrapperScript: D:\a\1\s\gradlew

任何线索都可以应用 谢谢

更新: 如@philipp所问,这是gradlew列出的任务列表,而assembleRelease并不是其中的一个!!!是什么原因?

C:\myApp\Android>gradlew tasks

> Task :tasks

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'android'.
components - Displays the components produced by root project 'android'. [incubating]
dependencies - Displays all dependencies declared in root project 'android'.
dependencyInsight - Displays the insight into a specific dependency in root project 'android'.
dependentComponents - Displays the dependent components of components in root project 'android'. [incubating]
help - Displays a help message.
model - Displays the configuration model of root project 'android'. [incubating]
projects - Displays the sub-projects of root project 'android'.
properties - Displays the properties of root project 'android'.
tasks - Displays the tasks runnable from root project 'android'.

To see all tasks and more detail, run gradlew tasks --all

To see more detail about a task, run gradlew help --task <task>

BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed

这是myApp \ android ** build.gradle **

project.ext.react = [
    bundleInStaging: true 
]
task wrapper(type: Wrapper) {
    gradleVersion = '4.8.1'
}
android {
    defaultConfig {
        applicationId "com.sunkime.client"
    }
    signingConfigs {
        staging {
            keyAlias = "staging"
            storeFile = file("my-release-key.keystore")
            keyPassword = "qwert%$#@!"
            storePassword = "qwert%$#@!"
        }
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword qwert%$#@!
                keyAlias qwert%$#@!
                keyPassword qwert%$#@!
            }
        }
    }
    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
        staging {
            applicationIdSuffix ".staging"
            signingConfig signingConfigs.staging
            minifyEnabled true
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }

        release {
            applicationIdSuffix ".release"
            signingConfig signingConfigs.release
            minifyEnabled true
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
}

我还使用了梯度清洁,没有区别

8 个答案:

答案 0 :(得分:3)

它是特定于assembleRelease还是gradlew assembleDebug有效?

也许尝试cd android && ./gradlew clean && ./gradlew assembleRelease

发布您的应用build.gradle也可能有帮助。

作为第一个任务,我建议运行./gradlew tasks来检查gradle设置是否正确并且列出了任务assembleRelease

答案 1 :(得分:2)

我终于解决了这个错误:

您必须在pubspec.yaml中逐个检查依赖项的每个版本。 在一个星期内,我遇到了问题,我的path_provider软件包的版本不是最新的。

答案 2 :(得分:1)

对我来说,设置ANDROID_HOME并使用“ sdk.dir = C:\ Users \ Me \ AppData \ Local \ Android \ Sdk”删除文件local.properties。当gradle找不到本地属性时,它将在ANDROID_HOME中搜索

答案 3 :(得分:1)

升级IntelliJ IDEA或Android Studio的版本后,或生成新的APK之后,可能会发生错误,您可能需要刷新IDE的缓存。 也可能是由于更新了SDK的位置(像我一样) 只需简单的破解即可,使缓存无效

**

文件->使缓存无效/重新启动...

**

答案 4 :(得分:1)

确保您没有找到android环境变量

在Mac上像这样运行命令以加载变量

data<- read.csv(file= "https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/ecdc/total_cases_per_million.csv")

答案 5 :(得分:0)

您需要将settings.gradle文件放入Android文件夹。

答案 6 :(得分:0)

如果assembleReleaseassembleDebug任务不起作用,则可以尝试gradlew assemble

答案 7 :(得分:0)

我不小心删除了app build.gradle文件时遇到了这个错误。