Flutter: يحتوي 'com.android.support:appcompat-v7' على إصدار مختلف للمجمع (26.1.0) ووقت التشغيل (27.0.1) classpath

تم إنشاؤها على ١٠ يناير ٢٠١٨  ·  19تعليقات  ·  مصدر: flutter/flutter

أتلقى خطأ عند تشغيل الرفرفة

flutter run
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...                                0.7s
Resolving dependencies...                             0.9s
Running 'gradlew assembleDebug'...                        
Configuration 'debugCompile' in project ':app' is deprecated. Use 'debugImplementation' instead.
Configuration 'profileCompile' in project ':app' is deprecated. Use 'profileImplementation' instead.
Configuration 'releaseCompile' in project ':app' is deprecated. Use 'releaseImplementation' instead.
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
Configuration 'debugProvided' in project ':apn_fb_login' is deprecated. Use 'debugCompileOnly' instead.
Configuration 'releaseProvided' in project ':apn_fb_login' is deprecated. Use 'releaseCompileOnly' instead.
Configuration 'debugProvided' in project ':firebase_messaging' is deprecated. Use 'debugCompileOnly' instead.
Configuration 'releaseProvided' in project ':firebase_messaging' is deprecated. Use 'releaseCompileOnly' instead.
Configuration 'debugProvided' in project ':google_sign_in' is deprecated. Use 'debugCompileOnly' instead.
Configuration 'releaseProvided' in project ':google_sign_in' is deprecated. Use 'releaseCompileOnly' instead.
Configuration 'debugProvided' in project ':image_picker' is deprecated. Use 'debugCompileOnly' instead.
Configuration 'releaseProvided' in project ':image_picker' is deprecated. Use 'releaseCompileOnly' instead.
Configuration 'debugProvided' in project ':share' is deprecated. Use 'debugCompileOnly' instead.
Configuration 'releaseProvided' in project ':share' is deprecated. Use 'releaseCompileOnly' instead.
Configuration 'debugProvided' in project ':shared_preferences' is deprecated. Use 'debugCompileOnly' instead.
Configuration 'releaseProvided' in project ':shared_preferences' is deprecated. Use 'releaseCompileOnly' instead.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'com.android.support:appcompat-v7' has different version for the compile (26.1.0) and runtime (27.0.1) classpath. You should manually set the same version via DependencyResolution

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
Gradle build failed: 1

ملف gradle.build الخاص بي هو:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withInputStream { stream ->
        localProperties.load(stream)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.3'

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.shuttertop.app"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        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.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

apply plugin: 'com.google.gms.google-services'

طبيب الرفرفة:

[✓] Flutter (on Linux, locale en_US.UTF-8, channel alpha)
    • Flutter at /home/luca/Programs/flutter
    • Framework revision 8f65fec5f5 (4 weeks ago), 2017-12-12 09:50:14 -0800
    • Engine revision edaecdc8b8
    • Tools Dart version 1.25.0-dev.11.0
    • Engine Dart version 2.0.0-edge.d8ae797298c3a6cf8dc9f4558707bd2672224d3e

[✓] Android toolchain - develop for Android devices (Android SDK 26.0.3)
    • Android SDK at /home/luca/Android/Sdk
    • Android NDK at /home/luca/Android/Sdk/ndk-bundle
    • Platform android-26, build-tools 26.0.3
    • ANDROID_HOME = /home/luca/Android/Sdk
    • Java binary at: /home/luca/Programs/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

[✓] Android Studio (version 3.0)
    • Android Studio at /home/luca/Programs/android-studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

[✓] Connected devices
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.0.0 (API 26) (emulator)

التعليق الأكثر فائدة

مثل هذا

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"
            }
        }
    }
}

ال 19 كومينتر

لقد قمت بحلها عن طريق الإضافة

resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }

إلى قسم المشاريع الفرعية في ملف android / build.gradle

لدي نفس المشكلة بالضبط. هل يمكنك نشر رمزك بالكامل؟ أجد صعوبة في إضافة الحل الخاص بك إلى ملف 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"
            }
        }
    }
}

هذا عمل معي شكرا لك
على الرغم من أنني لا أفهم ما الذي تفعله ، أرجو أن توضح بإيجاز وظيفتها؟

أنا آسف لأنني لا أستطيع تذكر سبب حدوث ذلك ، أعتقد أن هذا الخطأ يرجع عندما تقوم بترحيل مشروع من إصدار أقدم (على سبيل المثال 2.0.1) إلى أحدث إصدار (على سبيل المثال 3.0.1) ، كما أنك تحتاج إلى التأكد من أن لديك تنزيل التبعيات المناسبة.

تحقق من هذا للحصول على مزيد من المعلومات. https://stackoverflow.com/questions/47448502/could-not-resolve-com-android-supportappcompat-v726-1-0-in-android-studio-new

تمت إضافة نفس المشكلة مع المكون الإضافي flutter map_view

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }
    }
}

حتى نهاية android / build.gradle وقد تم حل المشكلة.
شكرا lalukz

تخيل المتاعب عندما ننتقل إلى حزم androidx الخاصة بنظام androidx jetpack

عمل،
لقد واجهت أخطاء أثناء استخدام كل من clodfirestore و firebase messaging plgin ، فقد انتهى الآن عن طريق إضافة السطر أعلاه
أيضًا إضافة السطر التالي في ملف gradle على مستوى التطبيق

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true 

نفس الخطأ ، ولكن ضد

> Android dependency 'com.android.support:support-v4' has different version for the compile (27.0.1) and runtime (27.1.1) classpath. You should manually set the same version via DependencyResolution

تمت إضافة هذا لحل المشكلة.

        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.0.1"
            }
        }

عندما أفعل ذلك ، يقوم تطبيقي بالتجميع ، لكنه يتعطل في التطبيق يبدأ مع عدم وجود خطأ في السجلات

لقد قمت أيضًا بإصلاح 27.1.0 وتعطل عند بدء التطبيق.

هل هناك أي طريقة لحل هذا دون زراعة البضائع؟

تمكنت من حل هذا بطريقة مختلفة. ربما ستنجح مع بعض أولئك الذين لا يزالون يعانون من صعوبة dannnnthemannnn

في android/app/build.gradle أضف هذا السطر:
implementation "com.android.support:support-v4:27.1.1"

لذلك يبدو الآن مثل:

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.android.support:support-v4:27.1.1" // added this
}

من مشاركة على رد فعل المجتمع .

يعمل عندما أضيف على النحو التالي

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }
    }
}

الحل يعمل بشكل جيد.

تمت إضافة نفس المشكلة مع المكون الإضافي flutter map_view

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }
    }
}

حتى نهاية android / build.gradle وقد تم حل المشكلة.
شكراlalukz

شكرا لك انها تعمل لي

تمكنت من حل هذا بطريقة مختلفة. ربما ستنجح مع بعض أولئك الذين ما زالوا يعانون من صعوبة dannnnthemannnn

في android/app/build.gradle أضف هذا السطر:
implementation "com.android.support:support-v4:27.1.1"

لذلك يبدو الآن مثل:

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.android.support:support-v4:27.1.1" // added this
}

من مشاركة على رد فعل المجتمع .

فقط هذا الحل يعمل لوضعي. لا يعمل خيار تغيير android / build.gradle.

لدي أيضًا نفس المشكلة وقمت بحلها عن طريق الإضافة

المشاريع الفرعية {
project.configurations.all {
ResolutionStrategy.eachDependency {تفاصيل ->
إذا (details.requested.group == 'com.android.support'
&&! details.requested.name.contains ('multidex')) {
تفاصيل.use الإصدار "26.1.0"
}
}
}
}

في نهاية ملف android / build.gradle

لدي أيضًا نفس المشكلة وقمت بحلها عن طريق الإضافة

المشاريع الفرعية {
project.configurations.all {
ResolutionStrategy.eachDependency {تفاصيل ->
إذا (details.requested.group == 'com.android.support'
&&! details.requested.name.contains ('multidex')) {
تفاصيل.use الإصدار "26.1.0"
}
}
}
}

في نهاية ملف android / build.gradle

هذا الحل يناسب وضعي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات