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
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.
Tu as besoin d'un settings.gradle
fichier dans votre dossier Android.
Si les tâches assembleRelease
et assembleDebug
ne fonctionnent pas, vous pouvez essayer gradlew assemble
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