web-dev-qa-db-ja.com

Android Gradle-「Android.debug.obsoleteApi = true」を追加する場所

私はAndroidStudio 3.3に更新しました。これにより、非推奨のライブラリに関する警告が表示されます。

警告:API 'variant.getExternalNativeBuildTasks()'は廃止され、 'variant.getExternalNativeBuildProviders()'に置き換えられました。 2019年末に削除されます。詳細については、 https://d.Android.com/r/tools/task-configuration-avoidance を参照してください。何がvariant.getExternalNativeBuildTasks()を呼び出しているかを確認するには、コマンドラインで-Pandroid.debug.obsoleteApi = trueを使用してスタックトレースを表示します。影響を受けるモジュール:アプリ

彼らのウェブサイトで提供されるいくつかのより多くの情報があります:

https://developer.Android.com/studio/releases/gradle-plugin?utm_source=Android-studio#behavior_changes

しかし、私はそれを正確に理解していません。彼らが言う:

追加情報を表示するには、プロジェクトのgradle.propertiesファイルに以下を含める必要があります。

Android.debug.obsoleteApi = true

(Project:[my project])でマークされたbuild.gradleを取得しました

ドキュメントは次のようになります。

buildscript {
    ext.kotlin_version = '1.3.10'
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:4.0.1'
        classpath 'com.github.triplet.gradle:play-publisher:1.1.5'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://jitpack.io"
        }
        mavenCentral()
    }
}

project.ext.preDexLibs = !project.hasProperty('disablePreDex')

subprojects {
    project.plugins.whenPluginAdded { plugin ->
        if ("com.Android.build.gradle.AppPlugin" == plugin.class.name) {
            project.Android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
        } else if ("com.Android.build.gradle.LibraryPlugin" == plugin.class.name) {
            project.Android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
        }
    }
}
repositories {
    mavenCentral()
}

しかし、私は今どこにその行を追加するべきか理解できません。そして、どこに配置しても、常にエラーが発生します。

例えば。最初の行に直接書き込む場合:

タイプorg.gradle.api.Projectのルートプロジェクト[マイプロジェクト]の不明なプロパティ「Android」を取得できませんでした。

これはどこに追加されるのでしょうか?または、gradleファイルの「プロジェクト」と「アプリ」の定義を混在させていますか?

25
Tobias Reich

_gradle.properties_内のアプリフォルダーの外notのプロジェクトレベルで存在する_build.gradle_ファイルにそれを配置する必要があります現在実行しようとしているファイル。

Android開発者ドキュメントから

廃止されたAPI使用時のデバッグ情報の改善:プラグインは、サポートされなくなったAPIを使用していることを検出すると、そのAPIが使用されている場所を判断するのに役立つより詳細な情報を提供できるようになりました。追加情報を表示するには、プロジェクトのgradle.propertiesファイルに以下を含める必要があります

Android.debug.obsoleteApi = true
コマンドラインから-Pandroid.debug.obsoleteApi = trueを渡すことでフラグを有効にすることもできます。

あなたはこれをチェックすることができます リンク

38
Nitesh

最も簡単な方法は、Androidプロジェクトのルートにあるterminalで行うことです。

次のコマンドを実行します。

 ./gradlew -Pandroid.debug.obsoleteApi=true
6
Allen

エラーメッセージに記載されているように、gradle.propertiesファイルとnotのいずれかでbuild.gradleファイル

3
Vivek Mishra