如何为SDK添加appcompat-v7:27.0.1及编译错误排查求助
解决appcompat-v7:27.0.1缺失及代码版本不匹配问题
首先咱们先搞定你提到的SDK缺少appcompat-v7:27.0.1的问题:
- 打开Android Studio,点击顶部菜单栏的 Tools > SDK Manager
- 切换到 SDK Tools 标签页,勾选右上角的 Show Package Details
- 找到 Android Support Library 选项并展开,找到27.0.1版本的选项,勾选后点击 Apply 按钮,等待安装完成就行
不过看了你贴的代码,还有几个关键问题会导致编译失败,得一起修正:
1. 版本不匹配问题
你的compileSdkVersion和targetSdkVersion都是23,但依赖的appcompat-v7:27.0.1是更高版本的支持库,这两者版本必须保持一致(至少compileSdkVersion要等于或高于support library的主版本号)。建议修改/app/build.gradle中的配置:
android { compileSdkVersion 27 buildToolsVersion "27.0.3" // 对应27版本的build tools,也可以选同版本下的其他可用版本 defaultConfig { applicationId "com.reactnavigationdrawer" minSdkVersion 16 targetSdkVersion 27 // 同步升级到27 versionCode 1 versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } } ... }
2. 依赖配置语法过时
现在Android Gradle插件已经推荐用implementation代替旧的compile关键字,虽然旧版本插件还能兼容compile,但建议更新依赖配置:
dependencies { implementation project(':react-native-vector-icons') implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.android.support:appcompat-v7:27.0.1" implementation "com.facebook.react:react-native:+" // From node_modules implementation 'com.facebook.android:facebook-android-sdk:+' }
3. Gradle插件版本过低
你当前用的Gradle插件版本是2.2.3,这个版本不支持compileSdkVersion 27,得升级插件版本。修改根目录下的build.gradle:
buildscript { repositories { jcenter() google() // 建议加上google仓库,避免依赖下载失败 } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' // 升级到支持27版本的插件 // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { mavenLocal() jcenter() mavenCentral() google() // 同样加上google仓库 maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } } }
同时,要修改gradle/wrapper/gradle-wrapper.properties中的distributionUrl,对应插件3.0.1的gradle版本是4.1:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
完成以上所有修改后,点击Android Studio右上角的 Sync Project with Gradle Files 按钮,等同步完成后重新编译,应该就能解决你的编译错误了。
内容的提问来源于stack exchange,提问作者Diego Barranco
相关产品推荐
相关产品推荐

