android - 如何修复“Android SDK Build Tools 版本 (27.0.3) 被忽略...”
问题描述
我正在制作关于颤振的应用程序。我连接了 map_view: ^0.0.14 在地图上绘制道路,但出现以下错误:
- 运行 Gradle 时出错:ProcessException: Process "C:\Users\admin\AndroidStudioProjects\advertise\android\gradlew.bat" 异常退出:
配置项目:app registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
配置项目:map_view 警告:指定的 Android SDK 构建工具版本 (27.0.3) 被忽略,因为它低于 Android Gradle 插件 3.2.1 的最低支持版本 (28.0.3)。将使用 Android SDK 构建工具 28.0.3。要禁止显示此警告,请从 build.gradle 文件中删除“buildToolsVersion '27.0.3'”,因为每个版本的 Android Gradle 插件现在都有一个默认版本的构建工具。****************************************************** ******* 警告:如果此版本的 firebase_auth 或其依赖项与 AndroidX 不兼容,它将破坏您的 Android 构建。请参阅 goo.gl/CP92wY 以获取有关该问题以及如何解决该问题的更多信息。此警告会针对所有 Android 构建失败打印。错误的真正根本原因可能是无关的。****************************************************** *******
FAILURE:构建失败并出现异常。
出了什么问题:Android Gradle 插件仅支持 Kotlin Gradle 插件版本 1.2.51 及更高版本。项目“map_view”使用的是 1.2.50 版本。
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。
在help.grade.org获得更多帮助
在 2 秒内构建失败命令:C:\Users\admin\AndroidStudioProjects\advertise\android\gradlew.bat app:properties
完成错误:请查看 android/ 文件夹中的 Gradle 项目设置。
应用程序/build.gradel:
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.advertise"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-core:16.0.9'
}
apply plugin: 'com.google.gms.google-services'
构建.gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.advertise">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="advertise"
android:icon="@mipmap/ic_launcher">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="xxxxxxxxxxxxxxxxxxxxxx"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
<activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- This keeps the window background of the activity showing
until Flutter renders its first frame. It can be removed if
there is no splash screen (such as the default splash screen
defined in @style/LaunchTheme). -->
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" />
<activity android:name="com.facebook.CustomTabActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
</application>
</manifest>
解决方案
从这里很难确定,但我可以建议你:
增加最低 SDK 版本:
minSdkVersion 16
至:
minSdkVersion 21
IDE 通常会Kotlin
在build.gradle
. 尝试通过 IDE 推荐修复它。它可能会说更新到'1.3.21'
等。
玩转gradle
版本:
classpath 'com.android.tools.build:gradle:3.2.1'
试试:3.3.0
,,,3.0.1
3.4.1
推荐阅读
- google-bigquery - 在 BigQuery 中自动删除临时表
- c - C switch case 值不能在 switch 内修改(不是常量)
- linux - uglifyjs 命令权限被拒绝
- python - 如何重置从我的 ipywidget 命令按钮生成的输出,以便仅显示更新的 DataFrame?
- python - tkinter 框架在添加小部件时调整大小,为什么我的标签总是在中心位置?
- java - 用户打开应用程序时如何显示主页?
- powershell - Powershell如何包含用户名和进程名等?
- eve - 您如何将身份验证添加到 eve_swagger 提供的路由中?
- python - 如何在 python 中为松弛 API 消息获取单个输出中的所有字典值
- php - Chrome串口通信