他の項目で流用する機能をAndroid LibraryにしてGitHubにあげてみました
その流れの覚書です
Android Libraryプロジェクト作成
まずNew ProjectでEmpty Activityを作成します
Android StudioのメニューのFile – New – New ModuleでAndroid Libraryを選択してAndroid Libraryプロジェクトを作成します
Empty Activityは不要なので(project)/appフォルダを削除します
settings.gradle.ktsからappを削除します(※コメントアウトではなく削除してください)
//include(":app")
不要な依存関係があったら削除します
ここではcom.android.applicationを削除しました(※コメントアウトではなく削除してください)
またマテリアル系も使わないのであれば削除してよいでしょう
plugins {
//alias(libs.plugins.com.android.application) apply false
}
バージョン設定
Android LibraryではBuildConfigでversionName/versionCodeの指定ができません
バージョン管理上設定したいので以下のように対応してみました
正しい方法かは不明ですがこれでProject Structureからでも指定できるようになります
private var versionName: String = ""
private var versionCode: Int = 0
android {
defaultConfig {
versionName = "1.0.0"
versionCode = 1
}
}
.aar出力
Build VariantsでActive Build Variantをreleaseにしてリビルドしてください
(Project)/(Module)/build/outputs/aarに(Module)-release.aarが出力されます
.aarは(Project)/(Module)/libsに置いて使用します
個別に指定してもよいですがフォルダ全体を読み込む指定が楽です
.aarを置き換えても反映されない場合は一旦プロジェクトを閉じて.gradleと.ideaフォルダを削除してからプロジェクトを開き直してリビルドで解決すると思います
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
}
他の.aarを使用する場合
libsフォルダに.aar置いてimplementation(fileTree(mapOf(“dir” to “libs”, “include” to listOf(“*.jar”, “*.aar”))))を指定した場合以下のエラーとなります
Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :PokeApi project caused this error: ....aar
調べてみると色々対応方法があるっぽいですが以下のようにimplementationをcompileOnlyに変えてコンパイル時のみにするだけで良いです
dependencies {
compileOnly(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
}
Android Studio Giraffe 2022.3.1 Patch 1 built on August 17, 2023