web-dev-qa-db-ja.com

一方、Android Studioがv3.3に更新され、API 'variant.getAssemble()'を取得することは廃止され、 'variant.getAssembleProvider()'に置き換えられました。

この警告の取得(variant.getAssemble()がどこでも使用されていない場合でも):

API 'variant.getAssemble()' is obsolete and has been replaced with 'variant.getAssembleProvider()'.

次のコンポーネントを更新しました:Android Studio

v3.3

Gradleプラグイン

v3.3

Gradle配布URL (gradle-wrapper.properties)

distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.Zip

gradle.properties

Android.debug.obsoleteApi=true

同じ警告が出ました!!

そして、これは私のアプリレベルのgradleファイルです:

_apply plugin: 'com.Android.application'

Android {
compileSdkVersion 28
defaultConfig {
    applicationId 'com.lauszus.facerecognitionapp'
    minSdkVersion 16
    targetSdkVersion 28
    versionCode 6
    versionName '1.2.3'
    vectorDrawables.useSupportLibrary = true
    ndk {
        stl 'c++_static'
        cFlags '-std=gnu++11 -fexceptions -frtti -DANDROID_STL=c++_static'
    }
    setProperty('archivesBaseName', rootProject.name + '-' + defaultConfig.versionName)
}
splits {
    abi {
        enable true
        reset()
        universalApk true
        include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
}
project.ext.abiCodes = ['armeabi-v7a':1, 'arm64-v8a':2, 'x86':3, 'x86_64':4]
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(com.Android.build.OutputFile.ABI))
        // Because abiCodes.get() returns null for ABIs that are not mapped by ext.abiCodes,
        // the following code does not override the version code for universal APKs.
        if (baseAbiVersionCode != null) {
            output.versionCodeOverride = baseAbiVersionCode * 1000000 + variant.versionCode
        }
    }
    if (variant.getBuildType().isMinifyEnabled()) {
        variant.assemble.doLast {
            variant.mappingFile.renameTo(variant.mappingFile.parent +
                    "/$archivesBaseName-$variant.baseName-mapping.txt")
        }
    }
}
signingConfigs {
    release
}
buildTypes {
    debug {
        jniDebuggable true
        externalNativeBuild {
            ndkBuild {
                arguments 'NDK_DEBUG=1', 'NDEBUG=null'
            }
        }
    }
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
externalNativeBuild {
    ndkBuild {
        path 'src/main/cpp/Android.mk'
    }
}
lintOptions {
    abortOnError false
}
 }

 dependencies {

   implementation 'com.Android.support:appcompat-v7:28.0.0'
   implementation 'com.Android.support:design:28.0.0'
   implementation project(':opencv')

  }

 // These values are all set in my global gradle.properties file
 if (project.hasProperty('storeFile') && project.hasProperty('storePassword') && 
  project.hasProperty('keyAlias') && project.hasProperty('keyPassword')) {
  Android.signingConfigs.release.storeFile = file(storeFile)
  Android.signingConfigs.release.storePassword = storePassword
  Android.signingConfigs.release.keyAlias = keyAlias
  Android.signingConfigs.release.keyPassword = keyPassword
} else {
Android.buildTypes.release.signingConfig = null
}
_

アプリレベルのgradleファイルにvariant.assemble.doLastブロックが含まれている場合、 「_variant.assemble.doLast_」を「variant.assembleProvider.get().doLast」に変更してみてください

このように:

_ if (variant.getBuildType().isMinifyEnabled()) {
        variant.assembleProvider.get().doLast {   //HERE
            variant.mappingFile.renameTo(variant.mappingFile.parent +
                    "/$archivesBaseName-$variant.baseName-mapping.txt")
        }
    }
_

referred Webリンク。

2
Imran

使用されているライブラリがプロジェクトでこのメソッドを使用している場合、このタイプの警告が表示される可能性があります

2
saqib mirza