React Native:任务:react-native-maps:compileDebugRenderscript FAILED

Vis*_*hel 4 react-native react-native-maps

我正在尝试MapView为 Android实现 React Native 。我确实遵循了github 安装说明,但是当我尝试使用react-native run-android命令运行时遇到了编译错误。

任务 :react-native-maps:compileDebugRenderscript FAILED

FAILURE:构建失败,出现异常。

  • 出了什么问题:无法解析所有配置文件 ':react-native-maps:debugCompileClasspath'。无法解析 com.android.support:support-compat:26.1.0。要求:项目:react-native-maps 找不到满足版本约束的“com.android.support:support-compat”版本:依赖路径“MapViewDemo:react-native-maps:unspecified”--> 'com .facebook.react:react-native:0.59.0' --> 'com.android.support:appcompat-v7:28.0.0' - -> 'com.android.support:support-compat:28.0.0' 依赖路径 'MapViewDemo:react-native-maps:unspecified' --> 'com.facebook.react:react-native:0.59.0' --> 'com.android.support:appcompat-v7:28.0.0' - - > 'com.android.support:support-core-utils:28.0.0' --> 'com.
  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

  • https://help.gradle.org获取更多帮助

BUILD FAILED in 5s 8 个可操作的任务:8 个执行的错误无法在设备上安装应用程序,请阅读上面的错误以了解详细信息。确保您有一个正在运行的 Android 模拟器或已连接的设备并已设置您的 Android 开发环境: https ://facebook.github.io/react-native/docs/getting-started.html 错误命令失败:gradlew.bat app :安装调试

应用级gradle

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'
}
}
Run Code Online (Sandbox Code Playgroud)

项目级gradle

// 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"
    }
}
}
Run Code Online (Sandbox Code Playgroud)

包.json

{
  "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"
}
}
Run Code Online (Sandbox Code Playgroud)

Vis*_*hel 5

经过两年一天都会挣扎我找到我的self.The真正的问题我的解决方案是我的项目中使用的compileSdkVersion = 28react-native-mapsnode_module使用不同版本的compileSdkVersion

要解决此问题,需要更新react-native-mapsnode_modulecompileSdkVersion版本。

project_name>node_modules>react-native-maps>lib>android>build.gradle

 ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 20
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "28.0.0"
}
Run Code Online (Sandbox Code Playgroud)

模块编译SDK版本和支持库版本应与工程编译SDK版本和支持库版本一致。