365連休

にわかのandroidとかの開発メモ。

【解決】Android Studio Arctic Fox API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'.

ビルド時に

API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'.
It will be removed in version 7.0 of the Android Gradle plugin.
For more information, see TBD.
To determine what is calling BaseVariant.getApplicationIdTextResource, use -Pandroid.debug.obsoleteApi=true on the command line to display more information.
Affected Modules: app

というエラーが出力される場合の解決法。

 

Android Gradle Pluginの7.0でgetApplicationIdTextResourceは削除されたので使わないでくださいというエラー。

 

文字通りgetApplicationIdTextResourceを使用している場合はapplicationIdへ置換すれば解決すると思われる。

 

しかし、自身で使用していない場合はandroidx.navigationライブラリが原因の可能性がある。

Navigationライブラリ 2.3系でgetApplicationIdTextResourceを使用しているらしく、2.4系へ変更することでビルドエラーを解消することができる。

※執筆時時点では2.4.0-alpha07だったので使用の際は注意!

Projectのbuild.gradle

buildscript {
    :
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.1'

        //NavigationGraphの引数付きアクションを実現するために必要
        //classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5" AGP7非対応
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-alpha07" //最新安定版を使いましょう
    }
    :
}

 

モジュールのbuild.gradle

apply plugin: 'com.android.application'

//NavigationGraphの引数付きアクションを実現するために必要
apply plugin: 'androidx.navigation.safeargs'

 :
 :
dependencies {
    :
    :
    //def navigation_version = "2.3.5" AGP7非対応
    def navigation_version = "2.4.0-alpha07" //最新安定版を使いましょう
    implementation "androidx.navigation:navigation-fragment:${navigation_version}"
    implementation "androidx.navigation:navigation-ui:${navigation_version}"
    :
    :
}

 

 参考

stackoverflow.com