问题遇到的现象和发生背景
我用Android的Android.bp来编译apk。源代码是用Android Studio编译过的。目录结构主要部分如下:
app
lib_common
module_1
module_2
Android.bp写法如下:
java_import {
name: "kotlin_jar",
jars: [
"libs/koin-android-2.0.0.jar",
"libs/koin-core-2.0.0.jar",
"libs/koin-androidx-scope-2.0.0.jar",
"libs/koin-androidx-viewmodel-2.0.0.jar",
"libs/kotlinx-coroutines-android-1.4.1.jar",
"libs/kotlinx-coroutines-core-jvm-1.4.1.jar",
"libs/kotlin-gradle-plugin-1.4.20.jar",
"libs/androidx.test-1.2.0.jar",
"libs/utilcodex-1.30.6.jar",
],
sdk_version: "current",
}
android_app {
name: "Test",
manifest:"app/src/main/AndroidManifest.xml",
static_libs: [
"androidx.recyclerview_recyclerview",
"androidx.preference_preference",
"androidx.appcompat_appcompat",
"androidx.legacy_legacy-preference-v14",
"androidx.leanback_leanback-preference",
"androidx.leanback_leanback",
"androidx.lifecycle_lifecycle-extensions",
"androidx.lifecycle_lifecycle-common",
"androidx.lifecycle_lifecycle-livedata",
"androidx-constraintlayout_constraintlayout",
"kotlin_jar",
"junit",
],
srcs: [
"lib_common/**/*.kt",
"module_1/**/*.kt",
"module_2/**/*.kt",
"app/**/*.kt",
],
resource_dirs: [
"app/src/main/res",
"lib_common/src/main/res",
],
platform_apis: true,
certificate: "platform",
optimize: {
enabled: false,
},
}
然后编译的时候,报模块找不到R和相关的layout、id等的错误。像这种情况,Android.bp要怎么写,模块才可以调用到自己里面的R相关资源。比如module_1,里面有Java文件和res目录,Java文件调用res的资源时,编译报错:unresolved reference。
Java文件已经import了本模块的R类