web-dev-qa-db-fra.com

La tâche «assemblerRelease» est introuvable dans le projet racine «Android»

J'utilise Reactnative 0.54.0 et react-native-cli 2.0.1 à côté gradle 4.8.1

J'ai créé un projet react-native en utilisant create-react-native-app myProjectName

Lorsque j'ai créé le projet, il ne comprend pas les dossiers Android et ios, donc je les ai ajoutés manuellement.

J'ai également installé gradle en utilisant choco , puis créé un wrapper pour cela en utilisant wrapper gradle --gradle-version 4.8. 1 - tout type de distribution

donc je développe réactif natif en utilisant Microsoft vsCode et puis voir mon application en action en utilisant Genymotion émulateur, tout va bien

maintenant, je veux générer le dernier APK signé pour Play Store, j'utilise ce guide fourni par react-native

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

Lorsque je veux exécuter gradlew assembleRelease je reçois cette erreur

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

quel est le problème avec assemblerRelease? que devrais-je faire?

pour ajouter plus d'informations, je dois dire que lorsque je veux construire ce projet en VSTS (TFS Online) j'obtiens cette erreur

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

Tout indice est apprécié Merci

Mise à jour: comme l'a demandé @philipp, c'est la liste des tâches que gradlew a répertoriées et assemblées. La libération n'en est pas une !!!! Quelle est la raison?

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

et voici 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"
        }
    }
}

J'ai également utilisé gradlew clean et aucune différence

8
Nasser Hadjloo

Est-ce spécifique à assembleRelease ou gradlew assembleDebug Fonctionne-t-il?

Essayez peut-être cd Android && ./gradlew clean && ./gradlew assembleRelease

La publication de vos applications build.gradle Pourrait également vous aider.

Comme première tâche, je recommanderais d'exécuter ./gradlew tasks Pour vérifier si gradle est correctement configuré et si la tâche assembleRelease est répertoriée.

5
Philipp

Tu as besoin d'un settings.gradle fichier dans votre dossier Android.

3
Edu

Si les tâches assembleRelease et assembleDebug ne fonctionnent pas, vous pouvez essayer gradlew assemble

2
Acuna

Pour moi, cela fonctionne en définissant Android_HOME et supprimez le fichier local.properties avec "sdk.dir = C:\Users\Me\AppData\Local\Android\Sdk". Lorsque Gradle ne trouve pas les propriétés locales, il recherche dans Android_HOME

1
Wagner dos Santos