未解决的 aar 资源
Unresolved aar resources
我正在构建在多个应用程序中共享的 Android 库的自定义多项目层次结构。
例如:
在我的应用程序中,我可以正确使用已实现的 aars 的 Kotlin Class 和 xml 资源。
在我的二级库(例如库 D)中,我可以正确使用 compileOnly 一级 aar(例如库 A)的 Kotlin Class。我也可以在秒级 xml 资源中正确使用来自一级 aars 的 xml 资源。例如:
<TextView
android:layout_height="wrap_content"
android:textColor="@color/MY-COLOR-FROM-1-LEVEL-AAR"
android:layout_width="0dp" />
有效。
但我不能在 Kotlin 中使用相同的资源 类。示例:
someView.setCardBackgroundColor(ContextCompat.getColor(context,R.color.MY-COLOR-FROM-1-LEVEL-AAR))
给我“未解决的参考”。
在二级库(如库D)中build.gradle我导入一级库(如库A)使用:
compileOnly files('libs/LibraryA.aar')
有什么问题吗?
经过多次测试,我找到了解决办法。在 gradle.properties 文件中 second-level 项目(在本例中为库 D)只需更改
android.nonTransitiveRClass=true
至
android.nonTransitiveRClass=false
我正在构建在多个应用程序中共享的 Android 库的自定义多项目层次结构。
例如:
在我的应用程序中,我可以正确使用已实现的 aars 的 Kotlin Class 和 xml 资源。
在我的二级库(例如库 D)中,我可以正确使用 compileOnly 一级 aar(例如库 A)的 Kotlin Class。我也可以在秒级 xml 资源中正确使用来自一级 aars 的 xml 资源。例如:
<TextView
android:layout_height="wrap_content"
android:textColor="@color/MY-COLOR-FROM-1-LEVEL-AAR"
android:layout_width="0dp" />
有效。
但我不能在 Kotlin 中使用相同的资源 类。示例:
someView.setCardBackgroundColor(ContextCompat.getColor(context,R.color.MY-COLOR-FROM-1-LEVEL-AAR))
给我“未解决的参考”。
在二级库(如库D)中build.gradle我导入一级库(如库A)使用:
compileOnly files('libs/LibraryA.aar')
有什么问题吗?
经过多次测试,我找到了解决办法。在 gradle.properties 文件中 second-level 项目(在本例中为库 D)只需更改
android.nonTransitiveRClass=true
至
android.nonTransitiveRClass=false