web-dev-qa-db-ja.com

Android依存関係 'com.Android.support:support-v4'のバージョンが異なります

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を実行しています。

私はこのエラーを引き起こしている何が起こっているのか本当に理解していません。

誰か助けてもらえますか?

8
jgv115

以下を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]
    }
22
Kartik

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"
}
2
Gaurang Goda

プロジェクトレベルの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が提供するソリューション。 リンク 。わたしにはできる。それが役に立てば幸い。

1
Riajur Rahman

これを試すプロジェクトを開くAndroid studioおよびwaitsync次に、

ビルドスクリプトの下で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. 
1
Raj008