PR

AndroidStudioで新規プロジェクトのビルドができない問題の解決法

Androidアプリ

エラーが出てビルドできないんですけど…

こうした悩みを解決します。

姫野秀徳

組み込みエンジニアとしてメーカー勤務10年。
第二種電工事士、基本情報技術者、Code.org認定教師。
microbitを用いた電子工作&プログラミング教室を開校。
組み込み開発の実際を発信するyoutube活動も行う。

無料で学べる組み込み開発オンラインスクールはじめました!
https://kumicla.tatepro.com

姫野秀徳をフォローする

エラー発生する理由

最初にプロジェクトを立ち上げるときにAPIレベルの設定をしますが、いざ立ち上がったプロジェクトは最新のAPIレベルに対応した構成になってるんですね。

なので、下位のAPIレベルに設定してプロジェクトを立ち上げると、プロジェクト構成とAPIレベルが合わないとエラーが出るわけです。

エラー内容

バージョンの差異はあれど下位APIレベルでプロジェクトを作りビルドすると下記のようなエラーが出ると思います。

簡単に言うと、APIレベル33以降を推奨してるのにそれ以下で設計しないで、と言われてます。

6 issues were found when checking AAR metadata:

  1.  Dependency 'androidx.appcompat:appcompat-resources:1.6.1' requires libraries and applications that depend on it to compile against version 33 or later of the
 Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

  2.  Dependency 'androidx.appcompat:appcompat:1.6.1' requires libraries and applications that depend on it to compile against version 33 or later of the Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

  3.  Dependency 'androidx.activity:activity:1.6.0' requires libraries and applications that depend on it to compile against version 33 or later of the Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

  4.  Dependency 'androidx.core:core:1.9.0' requires libraries and applications that  depend on it to compile against version 33 or later of the Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

  5.  Dependency 'androidx.core:core-ktx:1.9.0' requires libraries and applications that depend on it to compile against version 33 or later of the Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

  6.  Dependency 'androidx.annotation:annotation-experimental:1.3.0' requires libraries and applications that depend on it to compile against version 33 or later of the Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

解決方法

APIレベル33にすればいいじゃん、ちゃんちゃん…とできればよいのですが、Android OSの都合でアプリのAPIレベルを常に最新状態を保つのが正解ではないことがあります。

Android OSとAPIレベルの関係はAndroidデベロッパー公式を参照ください。
API レベルとは

とりあえず1番目のエラーから対処しましょう。

エラー1

日本語にすると↓

依存関係 'androidx.appcompat:appcompat-resources:1.6.1' は、それに依存するライブラリやアプリケーションがAndroid APIのバージョン33以降にコンパイルされる必要があります。

:appは現在、android-32にコンパイルされています。

推奨されるアクション: このプロジェクトを、例えば33などのより新しいcompileSdkVersionを使用するように更新してください。

ライブラリまたはアプリケーションのcompileSdkVersionを更新すること(新しいAPIを使用できるようにすること)は、targetSdkVersionを更新すること(新しいランタイム動作を有効にすること)やminSdkVersionを更新すること(アプリがインストール可能なデバイスを決定すること)とは別に行うことができることに注意してください。
  1.  Dependency 'androidx.appcompat:appcompat-resources:1.6.1' requires libraries and applications that depend on it to compile against version 33 or later of the Android APIs.
      :app is currently compiled against android-32.

      Recommended action: Update this project to use a newer compileSdkVersion of at least 33, for example 33.

Note that updating a library or application's compileSdkVersion (which allows newer APIs to be used) can be done separately from updating targetSdkVersion (which opts the app in to new runtime behavior) and minSdkVersion (which determines which devices the app can be installed on).

‘androidx.appcompat:appcompat-resources:1.6.1’ が対応していないということなので、appcompatのバージョンを下げます。

build.gradleのdependenciesに書かれています。

implementation 'androidx.appcompat:appcompat:1.6.1'
↓
implementation 'androidx.appcompat:appcompat:1.5.1'

1.6.1を1.5.1に下げました。

下げたらコード上部にSync Nowが表示されるのでクリックするのを忘れずに!

Sync Nowを忘れるとアプリの実行もデバッグもできなくなりますからね。

appcompatのリリース情報はリンクを参照ください。

Androidアプリを開発する際に便利なライブラリの1つである「AndroidX AppCompat」は、Googleが提供するサポートライブラリの1つです。AppCompatライブラリは、古いバージョンのAndroid OSでも新しいAPIやUIデザインを使えるようにするためのライブラリで、主にAndroidのバージョン5.0(APIレベル21)以降で利用されます。例えば、アクションバーのサポート、ツールバーの使用、アプリケーションのテーマの変更など、多くの機能を提供しています。AppCompatライブラリは、開発者がユーザーによりよいUI体験を提供するのを助けるために非常に重要な役割を果たしています。

これで無事ビルドできて、アプリが動きました!

まとめ

APIレベルを最新でない状態でプロジェクトを作成した場合、build.gradleのdependenciesにある

implementation ‘androidx.appcompat:appcompat:1.6.1’

のバージョンを下げましょう

この内容が良いと思ったら、いいね💖を押して教えてください!

組みクラ – 組み込み開発を学び、未来を創るエンジニアへ
無料で学べる!組み込み開発の基礎から応用までをマスターできるオンラインスクール「組みクラ」

組み込みエンジニアは、あらゆる産業の基盤を支える重要な職業です。
私たちタテプロは、次世代の組み込みエンジニアを育成し、業界の競争力を高めるために活動しています。
あなたも、無料で学べる「組みクラ」で、組み込み開発のスキルをしっかり身につけ、キャリアを加速させましょう!
今すぐ学び始めて、将来の自分をステップアップさせる第一歩を踏み出しませんか?

\立プロとLINEで友だちになりませんか/
立プロと友だちになる
Androidアプリ
シェアしていただけると嬉しいです!

コメント

タイトルとURLをコピーしました