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)』で作成しました )
|