web-dev-qa-db-fra.com

n'a pas pu obtenir la propriété inconnue pour 'applicationVariants' pour BuildType_Decorated

J'ai importé le module dans mon projet et son importé correctement. Mais je reçois cette erreur. j'ai importé le module de l'application de contrôle du scanner (par zebra). J'ai cherché de nombreuses solutions alternatives, mais cela ne fonctionne pas.

Error:(36, 0) Could not get unknown property 'applicationVariants' for BuildType_Decorated{name=release, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=false, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true, mBuildConfigFields={}, mResValues={}, mProguardFiles=[/home/custom/AndroidStudioProjects/fireball5/fireball/build/intermediates/proguard-files/proguard-Android.txt-2.3.3, /home/custom/AndroidStudioProjects/fireball5/fireball/scannercontrol/proguard-rules.pro], mConsumerProguardFiles=[], mManifestPlaceholders={}} of type com.Android.build.gradle.internal.dsl.BuildType.
<a href="openFile:/home/custom/AndroidStudioProjects/fireball5/fireball/scannercontrol/build.gradle">Open File</a>
    apply plugin: 'com.Android.library'

Android {
    compileSdkVersion 25
    buildToolsVersion '25.0.0'

    defaultConfig {
        applicationId "com.zebra.scannercontrol.app"
        minSdkVersion 19
        targetSdkVersion 22
        versionCode 71
        versionName "2.0.8.0"
        if (project.hasProperty('ADD_BUILD_TO_VERSION')) {
            versionName = versionName.substring(0,versionName.lastIndexOf(".") + 1) + (System.getenv("BUILD_NUMBER") ?: "0")
        }
    }

    signingConfigs {
        release {
            storeFile file("../../../keys/AndroidScannerSDK.keystore")
            if (project.hasProperty('RELEASE_STORE_PASSWORD')) {
                storePassword RELEASE_STORE_PASSWORD
                keyAlias RELEASE_KEY_ALIAS
                keyPassword RELEASE_KEY_PASSWORD
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            if (project.hasProperty('RELEASE_STORE_PASSWORD')) {
                signingConfig signingConfigs.release
            }
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                appendVersionName(variant, defaultConfig)
            }
        }
    }

    lintOptions {
        // Don't abort if Lint finds an error, otherwise the Jenkins build
        // will be marked as failed, and Jenkins won't analyse the Lint output
        abortOnError false
    }
}
def appendVersionName(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def fileName = file.name.replace("scannercontrol-release.apk", "scanner_control_app_v" + defaultConfig.versionName  + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def fileName = file.name.replace("scannercontrol-release", "scanner_control_app_v" + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:appcompat-v7:25.0.0'
    compile 'com.Android.support:design:25.0.0'
    compile project(':BarcodeScannerLibrary')
}
enter code here
14
Bhavik Mehta

Vous avez une erreur dans applicationVariants.all.

buildTypes {
    release {
        applicationVariants.all { variant ->
            appendVersionName(variant, defaultConfig)
        }
    }
}

Correctif 1:

Cela ne fonctionnera pas puisque vous appliquez apply plugin: 'com.Android.library'.

Vous devez le changer en apply plugin: 'com.Android.application' utiliser applicationVariants.all.

Correction 2:

Si vous souhaitez continuer à utiliser apply plugin: 'com.Android.library'.

Changement applicationVariants.all à libraryVariants.all ou testVariants.all.

Explication:

applicationVariants (uniquement pour le plugin d'application)

libraryVariants (uniquement pour le plugin de bibliothèque)

testVariants (pour les deux plugins)

Tous les trois renvoient un DomainObjectCollection d'objets ApplicationVariant, LibraryVariant et TestVariant respectivement.

J'espère que cela t'aides.

Modifier:

apply plugin: 'com.Android.library'

Android {
    compileSdkVersion 25
    buildToolsVersion '25.0.3'

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 22
        versionCode 71
        versionName "2.0.8.0"
        if (project.hasProperty('ADD_BUILD_TO_VERSION')) {
            versionName = versionName.substring(0,versionName.lastIndexOf(".") + 1) + (System.getenv("BUILD_NUMBER") ?: "0")
        }
    }

    signingConfigs {
        release {
            storeFile file("../../../keys/AndroidScannerSDK.keystore")
            if (project.hasProperty('RELEASE_STORE_PASSWORD')) {
                storePassword RELEASE_STORE_PASSWORD
                keyAlias RELEASE_KEY_ALIAS
                keyPassword RELEASE_KEY_PASSWORD
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            if (project.hasProperty('RELEASE_STORE_PASSWORD')) {
                signingConfig signingConfigs.release
            }
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:appcompat-v7:25.3.1'
    compile 'com.Android.support:design:25.3.1'
    compile project(':BarcodeScannerLibrary')
}
28
DWattimena