ブログアーカイブ

GradleException, androidx.annotation.NonNull


Android StudioでFlutterアプリを作成すると、android/app/build.gradle ファイルの GradleException の箇所、android/app/src/kotlin/ 以下の MainActivity.kt ファイルの androidx.annotation.NonNull の箇所、android/app/src/main/java/io.flutter/plugins/GeneratedPluginRegistrant.java ファイルの import androidx.annotation.Keep の Keep の箇所がそれぞれ赤字で表示されエラーが発生する。

Gradle project sync failed. が発生する。Frameworks Detected. が表示されない。Gradleでサポートされていないプロジェクト 等が表示される。

  1. File – Settings – Kotlin Compiler の Kotlin to JVM – Target JVM Version を 1.6 から 1.8 に変更します。プロジェクトを開きなおします。
  2. File – Project Structure… の Project Setting – Project の Project SDK を <NO SDK> の場合に Android API 28 Platform などに変更します。
  3. android/gradle.properties ファイルを android/app ディレクトリーにコピーします。またはgradle.propertiesを作成します。
  4. プロジェクト内の android/gradle ディレクトリーを android/app// (ProjectRoot) にコピーします。gradle-wrapper.jar ファイルとgradle-wrapper.properties ファイルが含まれます。
  5. プロジェクト内の /.idea, /.dart_tool, /android/.idea, /android/.gradle ディレクトリーを削除します。キャッシュフォルダーと思われますので削除しても問題は発生しません。
  6. %userprofile% の .Android Studio 3.5/system/cache, .gradle ディレクトリーを削除します。

GradleException のエラーは依然として発生する場合があります。app/build.gradleファイルの def flutterRoot の個所を次のように書き換えると発生しなくなります。

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new FileNotFoundException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    // throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}



gradle.properties


org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true


以前の投稿です。

Tools – Flutter – Open for Editing in Android Studio を選択します。This Window で問題ないようです。

File – Settings – Kotlin Compiler の Kotlin to JVM – Target JVM Version を 1.6 から 1.8 に変更します。プロジェクトを開きなおします。

File – Project Structure… の Project Setting – Project の Project SDK を <NO SDK> の場合に Android API 28 Platform などに変更します。

File – Invalidate Chches / Restart を選択して Invalidate を実行します。


こちらのサイトの情報 (https://stackoverflow.com/questions/56607089/new-gradle-sync-is-not-supported-due-to-containing-kotlin-modules-using-an-unsup)が参考になりました。なかなか見つからなかった。