トップページ > 記事閲覧
android版の使いかたについて
名前:kanamaru 日時: 2021/12/11 11:05

アドベントカレンダーのネタ探しをしていて、android版関連にしようと思って androidstudio入れてたのでandroidstudioでアプリを作ろうとしたのですが、 なぜかうまくいきません。 具体的には One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.appcompat:appcompat:1.4.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\46d15f5c58a469270eeba15db4463d05\transformed\appcompat-1.4.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.appcompat:appcompat-resources:1.4.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\70088de83757cd2e92dadb8b386e6adb\transformed\jetified-appcompat-resources-1.4.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.emoji2:emoji2-views-helper:1.0.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\6cbed90352b213553df3539e2e7f22af\transformed\jetified-emoji2-views-helper-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.emoji2:emoji2:1.0.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\09b79be83fba3907471fe1de63f439d3\transformed\jetified-emoji2-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.core:core:1.7.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\9339927e08badd09bc5459e4ba900d5f\transformed\core-1.7.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.lifecycle:lifecycle-process:2.4.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\0e4a425e61d135d109d64d5f17d999df\transformed\jetified-lifecycle-process-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.lifecycle:lifecycle-runtime:2.4.0. AAR metadata file: C:\Users\takurokanamaru\.gradle\caches\transforms-3\bca1bb61c15ab5807e64593ca04debef\transformed\lifecycle-runtime-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties. というエラーが出てきます。 build.gradleのsdkのバージョンを31にすると消えはするんですけど その代わりにエミュレータでアプリが起動できません。 (多分エミュレータがsdk30用だからな気もしますが31用はダウンロード候補にありません) どこか使いかたページに書いてないことでやる必要のあることはあるでしょうか。 僕が見つけたのは ・advancedFeatures.iniというファイルを作成する必要がある(これやらないとエミュレータが起動できません)  URLが貼れなかったのでandroid studio エミュレータ 起動できないと検索して一番上のサイトを開いてベストアンサーのURLにアクセスしてください。 ・build.gradle、gradle.propatiesからJCenterの記述を消す。 は必要だと思います。
メンテ

Page: 1 |

Re: android版の使いかたについて ( No.1 )
名前:kanamaru 日時:2021/12/11 13:30

そういえばSDKの31用入れてなかったことを思い出して、SDKの31用を入れて、 なぜかx86imagesってところにあったAPI31用の物をもう一度試しましたがそれでもだめでした。 エミュレータでアプリが起動してないので起動中アプリ一覧にタスクがあったので選んでみても dxlibtest keep stoppingというエラーダイアログがでてアプリが終了しちゃいます。
メンテ
Re: android版の使いかたについて ( No.2 )
名前:管理人 日時:2021/12/11 21:26

SDK 30 や SDK 31 は最新でまだ安定していないのか、DXライブラリ用に何も設定を変更していなくても C++ のプロジェクトはエラーが発生して起動しないようです > どこか使いかたページに書いてないことでやる必要のあることはあるでしょうか。 プロジェクトを作成する際の New Project のダイアログに Minimum SDK という項目があるのですが、 こちらを API 26 : Android 8.0 (Oreo) など、少し古めのSDKバージョンを指定して頂ければ 問題なくビルドが通るようになりますので、よろしければお試しください m(_ _)m
メンテ
Re: android版の使いかたについて ( No.3 )
名前:kanamaru 日時:2021/12/11 23:11

ありがとうございます。 今確認したら、MinimumSDKは21でした。なので試しにSDK29と29用のエミュレータで試したら同じエラーが出ました。build.gradleも書き換えたのですが。 とりあえず明日minimumSDKを26にしてもう一度プロジェクトを作り直してみます。古すぎる可能性もありますし。 結果がわかったら報告します。
メンテ
Re: android版の使いかたについて ( No.4 )
名前:kanamaru 日時:2021/12/12 08:42

minimumSDKを26、targetSDKを29や31にしてビルドを行いました。 結果としては一番最初に書いたエラーが発生しました。 多分ですけどエラーメッセージを頑張って読んだのですが、 build.gradleのdependenciesで指定されているライブラリ?のバージョンでは使える最小のSDKのバージョンが31になっています といった内容が書いてあるようなんです。 (この感じだと書いた方がいいかもしれませんが、androidstudio、gradleは表示に従ってアップデートを行っています。) といってもandroidstudioの設定見たら古いバージョンが使われてましたが。 なので一度ビルドに成功したプロジェクトのbuild.gradle(:app)を見せてくれませんか? あと一応使っているandroidstudioとgradleとgradlepluginのバージョンも教えてください。 それとバージョンを合わせてみます。
メンテ
Re: android版の使いかたについて ( No.5 )
名前:管理人 日時:2021/12/13 04:31

> なので一度ビルドに成功したプロジェクトのbuild.gradle(:app)を見せてくれませんか? 昨日(12/11)に新規作成して成功したプロジェクトの build.gradle(:app) の内容は以下の通りです // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.4" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } task clean(type: Delete) { delete rootProject.buildDir } > あと一応使っているandroidstudioとgradleとgradlepluginのバージョンも教えてください。 各バージョンは以下の通りです androidstudio  Android Studio Arctic Fox | 2020.3.1 Patch 4  Build #AI-203.7717.56.2031.7935034, built on November 21, 2021  Runtime version: 11.0.10+0-b96-7249189 amd64 gradle 7.0.2 gradleplugin 7.0.4 因みに、本日DXライブラリを使ったプログラムの実行を試した所、自動生成される CMakeLists.txt の内容が以前と異なっており、以下のような変更( 2箇所 )を加える必要がありました ------------------1箇所目------------------------------------ add_library( # Sets the name of the library. (プロジェクト名) # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). native-lib.cpp ) ↓ (プロジェクト名) の部分を native-lib に変更  add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). native-lib.cpp )  -------------------------------------------------------------- ------------------2箇所目------------------------------------ target_link_libraries( # Specifies the target library. (プロジェクト名) # Links the target library to the log library # included in the NDK. ↓ (プロジェクト名) の部分を native-lib に変更  target_link_libraries( # Specifies the target library. native-lib # Links the target library to the log library # included in the NDK. -------------------------------------------------------------- ビルドが失敗する原因とは関係が無いかもしれませんが… (・・;
メンテ
Re: android版の使いかたについて ( No.6 )
名前:kanamaru 日時:2021/12/13 08:44

ありがとうございます。 cmakelistは大丈夫でした。 すいません。build.gradleについてはそっちではなくもう一個のbuild.gradleですね。 みたかんじandroidstudioもgradleもgradlepluginもバージョンが一致してますね。ということは環境自体のバージョンは問題はないはず。 …いやgradleのバージョンが一致するならライブラリ?とかのも一致してるはずですよね。自動生成してるんだから。 とりあえずもう一つのbuild.gradleを一応比較してみたいです。自動生成なので比較しても意味はないかもしれませんが。 原因が全然わかんない。 色々チェックしたところ怪しい所が見つかりました。 project structureのModulesのSource CompatibilityとTarget Compatibilityってところの右横になんか赤文字でResolved: JDK_1_8 入力欄自体には$VERSION_1_8と書いてあります。ここって管理人さんの方ではどうなってますか? もしかしてJDKのバージョンに問題があるとか?
メンテ
Re: android版の使いかたについて ( No.7 )
名前:管理人 日時:2021/12/14 05:46

> すいません。build.gradleについてはそっちではなくもう一個のbuild.gradleですね。 もう一つの build.gradle の内容は以下の通りです plugins { id 'com.android.application' } android { compileSdk 30 defaultConfig { applicationId "com.example.test2" minSdk 26 targetSdk 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags '' } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') version '3.10.2' } } buildFeatures { viewBinding true } } dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } > project structureのModulesのSource CompatibilityとTarget Compatibilityってところの右横になんか赤文字でResolved: JDK_1_8 > 入力欄自体には$VERSION_1_8と書いてあります。ここって管理人さんの方ではどうなってますか? Source Compatibility と Target Compatibility の右横には何も表示はありません( 赤文字の Resolved: JDK_1_8 もありません ) 入力欄に $VERSION_1_8 と書いてあるのは私の環境でも同じです
メンテ
Re: android版の使いかたについて ( No.8 )
名前:kanamaru 日時:2021/12/14 07:49

ありがとうございます。管理人さんが送ってくれたbuild.gradleと比べた結果、 dependenciesというところのバージョンが全然違いました。管理人さんと違いSDK29向けですがビルドに成功しました。 JDKはいずれどうにかするとして、これでアプリの開発ができます。 さて、アドベントカレンダーの記事どうしよう。とりあえずは今回の経験をもとに一個記事が書ける。 参考までに僕がビルドに失敗したときのdependenciesを乗せておくので多分再現はできると思います。 implementation 'androidx.appcompat:appcompat:1.4.0' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.2' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' にしてもなんでこんなことに? あくまでも可能性の話ですが、もしかして管理人さんがビルドしたプロジェクトって最近じゃなくて前に作ったプロジェクトだったりしませんか? gradleのバージョンが同じでも自動生成されるときのdependenciesで使われるバージョンは最新バージョンが使われるとか?
メンテ
Re: android版の使いかたについて ( No.9 )
名前:管理人 日時:2021/12/14 22:50

> 参考までに僕がビルドに失敗したときのdependenciesを乗せておくので多分再現はできると思います。 > implementation 'androidx.appcompat:appcompat:1.4.0' > implementation 'com.google.android.material:material:1.4.0' > implementation 'androidx.constraintlayout:constraintlayout:2.1.2' > testImplementation 'junit:junit:4.+' > androidTestImplementation 'androidx.test.ext:junit:1.1.3' > androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 私の手元でも新規プロジェクト作成時の『Minimum SDK』を『API 30: Android 11.0 (R)』に設定してプロジェクトを 作成したら上記のバージョンになりました( ビルドした際のエラーも kanamaruさんの最初の投稿の内容と同じものが出力されました ) > あくまでも可能性の話ですが、もしかして管理人さんがビルドしたプロジェクトって最近じゃなくて前に作ったプロジェクトだったりしませんか? いえ、2021/12/11 に新規作成したプロジェクトです( 『Minimum SDK』を『API 26 : Android 8.0 (Oreo)』で作成しました )
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存