J'essaie d'implémenter React Native Tâche: react-native-maps: compileDebugRenderscript FAILED ÉCHEC: la compilation a échoué avec une exception. Essayez:
Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sortie de journal. Exécutez avec --scan pour obtenir des informations complètes. Obtenez plus d'aide sur https://help.gradle.org ÉCHEC DE LA CONSTRUCTION dans 5s
8 tâches réalisables: 8 exécutées
erreur Impossible d'installer l'application sur l'appareil, lisez l'erreur ci-dessus pour plus de détails.
Assurez-vous d'avoir un émulateur Android en cours d'exécution ou un appareil connecté et
configurer votre environnement de développement Android:
https://facebook.github.io/react-native/docs/ getting-started.html
erreur La commande a échoué: application gradlew.bat: installDebug Gradle au niveau de l'application Gradle au niveau du projet strong> Package.json MapView
pour Android. J'ai suivi l'installation de github a > instruction mais je suis confronté à une erreur de compilation lorsque j'essaye de courir en utilisant la commande react-native run-android
.
{
"name": "MapViewDemo",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.8.3",
"react-native": "0.59.0",
"react-native-maps": "^0.23.0"
},
"devDependencies": {
"@babel/core": "7.3.4",
"@babel/runtime": "7.3.4",
"babel-jest": "24.5.0",
"jest": "24.5.0",
"metro-react-native-babel-preset": "0.53.0",
"react-test-renderer": "16.8.3"
},
"jest": {
"preset": "react-native"
}
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 20
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
}
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
apply plugin: "com.android.application"
import com.android.build.OutputFile
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.mapviewdemo"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86-64"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86-64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
implementation project(':react-native-maps')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation "com.facebook.react:react-native:+" // From node_modules
implementation(project(':react-native-maps')) {
exclude group: 'com.google.android.gms', module: 'play-services-base'
exclude group: 'com.google.android.gms', module: 'play-services-maps'
}
implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:28.0.0'
force 'com.android.support:appcompat-v7:28.0.0'
}
}
5 Réponses :
cela a également fonctionné pour moi.
Modifiez android / build.gradle comme suit
1) Ajoutez google () dans les référentiels
// from version 2.14.1 distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip // change to 4.10.1 distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
2) Mettez à jour com.android.tools. build.gradle vers 3.1.0
android.enableAapt2=false // < --- add here android.useDeprecatedNdk=true MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias
3) Ajouter google () à l'intérieur des dépôts après les dépendances:
buildscript { repositories { jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' } allprojects { repositories { mavenLocal() jcenter() // add googgle() here google()
4) Ajoutez android.enableAapt2 = false
à android / gradle.properties
buildscript { repositories { jcenter() google() } dependencies { // classpath 'com.android.tools.build:gradle:2.2.3' // update from 2.2.3 to 3.1.0 classpath 'com.android.tools.build:gradle:3.1.0'
5) Mettez à jour la version de gradle dans android / gradle / wrapper / gradle-wrapper. properties:
buildscript { repositories { jcenter() // add google() here google()
6) Exécutez react-native run-android
J'ai suivi vos instructions mais j'affiche toujours l'erreur > Impossible d'obtenir la propriété inconnue 'mergeResourcesProvider' pour l'objet de type com.android.build.gradle.internal.api.ApplicationVariantImpl.
dans mon niveau d'application, je n'ai pas inséré les lignes suivantes. implémentation (projet (': react-native-maps')) {groupe d'exclusion: 'com.google.android.gms', module: 'play-services-base' groupe d'exclusion: 'com.google.android. gms ', module:' play-services-maps '} implémentation' com.google.android.gms: play-services-base: 16.1.0 'implementation' com.google.android.gms: play-services-maps: 16.1 .0 '}
Après deux jours de difficultés, je trouve ma solution par moi-même.Le vrai problème est mon projet en utilisant compileSdkVersion = 28
et react-native-maps
node_module en utilisant une version différente de compileSdkVersion
.
Pour résoudre ce problème, vous devez mettre à jour la version de react-native-maps
node_module compileSdkVersion
.
nom_projet> node_modules> react-native-maps> lib> android> build.gradle
ext { buildToolsVersion = "28.0.3" minSdkVersion = 20 compileSdkVersion = 28 targetSdkVersion = 28 supportLibVersion = "28.0.0" }
La version du SDK de compilation du module et la version de la bibliothèque de support doivent être identiques à celles du SDK de compilation du projet version et version de la bibliothèque de support.
avez-vous réussi à le faire fonctionner?. j'ai trouvé une autre solution. dans mon cas, cela se produit à cause de la version de react-native (0.59.0). donc je change ma version react-native dans mon formulaire de fichier package.json 0.59.0
en ^ 0.58.6
. et la version react-native-maps à ^ 0.23.0
. voici les autres étapes.
1) dans les paramètres au niveau de l'application.gradle, incluez ceci
<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBTSDBtI7_dfdfBeYkNAtdQ8sT67HiOuO0VU"/>
2) dans le niveau du projet, supprimez ou commentez
XXX
(à l'intérieur de buildscript {})
3) également au niveau du projet gradle, changez le chemin de classe. build.gradle version 3.1.1
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
ajouter également une autre URL à l'intérieur de maven {} (à l'intérieur de tous les projets {})
defaultConfig { applicationId "com.mapviewdemo" minSdkVersion 16 targetSdkVersion 22 versionCode 1 versionName "1.0" }
4) changez maintenant le niveau de niveau de l'application comme suit
d'abord, changez compileSdkVersion en 28 et ajoutez une nouvelle buildToolVersion
compileSdkVersion 28 buildToolsVersion "27.0.3"
puis, changez min et cible SdkVersion comme suit (à l'intérieur de defaultConfig)
maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "https://maven.google.com" url "$rootDir/../node_modules/react-native/android" }
5) dans votre AndroidManifest.xml,
ajoutez d'abord ce code. il s'agit de donner la permission d'accéder à l'emplacement sur votre appareil. ajoutez ceci avant la balise
.
classpath 'com.android.tools.build:gradle:3.1.1'
alors vous devez ajouter vos méta-données avant code >.
ext { buildToolsVersion = "28.0.3" minSdkVersion = 20 compileSdkVersion = 28 targetSdkVersion = 28 supportLibVersion = "28.0.0" }
(ajoutez votre propre clé API pour android:value
)
6) puis exécutez npm install
et essayez si cela fonctionne ou non. si cela ne fonctionne pas, vous devez télécharger le SDK Android à partir du studio Android. dans mon cas, j'ai téléchargé Android 7.0 et 6.0
Oui, je suis capable de le faire fonctionner. Votre solution est également correcte mais je pense que la mise à niveau de la version react-native-maps
du projet react-native-maps
est une meilleure solution.
content de l'entendre. Alors, quelle est la nouvelle version de react-native-maps
dans votre projet?
J'ai mis à jour la version react-native
de react-native-maps
qui est 0.59.0.
J'ai résolu ce problème en utilisant cette installation npm - enregistrez "react-native-maps @ jerolimov / react-native-maps # fix-rn59rc-compile-issues"
de: https://github.com/react -native-community / react-native-maps / pull / 2702
le problème est avec React native 0.59+ qui compile avec compileSdkVersion 28 et les cartes utilisent 26
Au bout de 2 jours, j'ai trouvé le problème dans mon projet.
J'ai modifié les valeurs de compileSdkVersion , supportLibVersion et playServicesVersion dans
android / build.gradle
et android / app / build.gradle
aux mêmes valeurs que dans node_modules / react-native-maps / lib / android / build .gradle
et node_modules / react-native-maps / build.gradle
, cela a fonctionné pour moi.
Valeurs de compileSdkVersion , supportLibVersion et playServicesVersion sont identiques dans tous les fichiers ci-dessous.
dans le fichier android / build.gradle :
... ext { minSdkVersion = 16 compileSdkVersion = 28 targetSdkVersion = 28 supportLibVersion = '28.0.0' playServicesVersion = '16.1.0' } ...
dans le fichier android / app / build.gradle :
... android { compileSdkVersion safeExtGet('compileSdkVersion', 28) defaultConfig { minSdkVersion safeExtGet('minSdkVersion', 16) targetSdkVersion safeExtGet('targetSdkVersion', 27) } } dependencies { ... implementation "com.android.support:appcompat-v7:${safeExtGet('supportLibVersion', '28.0.0')}" implementation "com.google.android.gms:play-services-base:${safeExtGet('playServicesVersion', '16.1.0')}" implementation "com.google.android.gms:play-services-maps:${safeExtGet('playServicesVersion', '16.1.0')}" implementation 'com.google.maps.android:android-maps-utils:0.5' } ...
dans le fichier node_modules / react-native-maps / lib / android / build.gradle :
... android { compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { applicationId "com.reactnativeapp2" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } } ... ... } ... dependencies { ... ... implementation 'com.google.android.gms:play-services-base:16.1.0' implementation 'com.google.android.gms:play-services-maps:16.1.0' } ...
dans le fichier node_modules / react-native-maps / build.gradle :
... ext { compileSdkVersion = 28 targetSdkVersion = 27 buildToolsVersion = "28.0.3" minSdkVersion = 16 supportLibVersion = "28.0.0" playServicesVersion = "16.1.0" // or set latest version androidMapsUtilsVersion = "0.5+" } ...