2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Android]Android Gradle Plugin 7+へ更新後にビルドしたアプリを起動して ClassNotFoundException が発生した時の対処法

Posted at

業務で開発しているプロジェクトで Android Gradle Plugin を 7.0.1 に更新したのですが、ビルドしてアプリを起動するとアプリが強制終了してしまいました。

その際に以下のようなログ(一部抜粋)が出力されていました。

E/LoadedApk: Unable to instantiate appComponentFactory
    java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[...]

Google Issue Tracker で検索してみたところ、どうやら こちら が該当の問題のようでした。

どうやら R8 の問題のようで https://issuetracker.google.com/issues/196406764#comment22 のコメントにあるように、以下のように R8 のバージョンを明示的に指定することでアプリが強制終了することがなくなりました。

build.gradle
buildscript {

    repositories {
        maven {
            url 'https://storage.googleapis.com/r8-releases/raw'
        }
        ...
    }

    dependencies {
        classpath 'com.android.tools:r8:3.0.68' // Must be before the Gradle Plugin for Android.
        classpath 'com.android.tools.build:gradle:7.0.1' 
     }
}

注意点としては R8 のクラスパスは Android Gradle Plugin より前に宣言する必要があります。

暫定的な対応かと思いますが、同じようなエラーで困っている方の手助けになれば幸いです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?