Dart 2と最新バージョンのFlutterにアップグレードしましたが、アプリをビルドできません。私はインターネットで周りを見回しましたが、なぜこれが起こっているのか分かりません。
私が得るエラーは:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'com.Android.support:support-v4' has different version for the compile (26.1.0) and runtime (27.1.0) classpath. You should manually set the same version via DependencyResolution
プロジェクトbuild.grade:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.1'
}
}
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
}
pubspec.yaml:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
google_sign_in: ^3.0.2
firebase_auth: ^0.5.5
firebase_database: ^0.4.5
firebase_core: ^0.2.3
flutter_blue: ^0.3.3
dev_dependencies:
flutter_test:
sdk: flutter
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
パッケージを最新バージョンに更新し、最新バージョンのDartとFlutterを実行しています。
私はこのエラーを引き起こしている何が起こっているのか本当に理解していません。
誰か助けてもらえますか?
以下をAndroidプロジェクトレベルのbuild.gradleファイルの「サブプロジェクト」セクションに追加します(コメントでGünterZöchbauerによって提供された link でも言及されています):
subprojects {
project.evaluationDependsOn(':app')
//[PART TO ADD START]
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.Android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "27.1.0"
}
}
}
//[PART TO ADD END]
}
Flutterで「QRスキャナーアプリ」を作成しているときに同じ問題が発生しました。「minSdkVersion 21」をdemoapp-> Android->-で変更しましたapp-> build.gradle-> minSdkVersion、完全に機能しました。これは、flutterの一部の依存関係が21未満のminSdkをサポートしていないために発生しました。
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.Android.com/studio/build/application-id.html).
applicationId "com.example"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
プロジェクトレベルのbuild.gradleファイルを開き、次のスニペットを追加します。
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.Android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "26.1.0"
}
}
}
}
これを追加すると、プロジェクトレベルbuild.gradleファイルは次のようになります。
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.Android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "26.1.0"
}
}
}
}
GünterZöchbauerが提供するソリューション。 リンク 。わたしにはできる。それが役に立てば幸い。
これを試すプロジェクトを開くAndroid studioおよびwaitでsync次に、
ビルドスクリプトの下でbuild.gradileをこの追加にgoogle()in repositoriesに更新すると、次のようになります。
repositories {
jcenter()
google()
}
update classpath
classpath 'com.Android.tools.build:gradle:3.1.1'
Update distributionUrl in gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip
implementation "com.Android.support:support-v4:27.1.1" // In case your targetting.