我正在开发一个Android库,它将在一个活动中包含不同的屏幕.我最初想为用户界面使用Compose,但我在使用这种方法时遇到了问题.在我的模块中,我需要使用kotlinCompilerExtensionVersion设置Compose选项.这个版本应该匹配具体的Kotlin插件版本的应用程序,将使用我的库.然而,在不同的应用程序中,这一版本可能会有所不同.有什么方法可以解决这个问题吗?或者使用XML视图是可行的吗?

推荐答案

只有在你用你的项目编译你的库的时候,kotlinCompilerExtensionVersion才需要匹配.这意味着如果你把你的库作为一个模块包含在implementation(project(':yourlibrary'))之类的东西中,然后构建你的应用程序.

但是,如果您将库作为预编译的AAR分发,例如使用maven存储库,它已经被编译成.aar,因此kotlinCompilerExtensionVersion实际上并不重要.然后每个项目都可以通过常用的Gradle DSL:implementation('your:lib:1.0.0)导入它

您可以通过创建一个新项目并将.aar库添加为文件来轻松测试这一点.或者使用Gradle Maven publish plugin将您的库发布到本地maven存储库.只需将其添加到您的gradle中,

publishing {
  publications {
    release(MavenPublication) {
      groupId = 'com.my-company'
      artifactId = 'my-library'
      version = '1.0'

      afterEvaluate {
        from components.release
      }
    }
  }
}

然后跑./gradlw publishToMavenLocal

有关更多信息,请参阅关于发布Android库的official docs篇文章.

Android相关问答推荐

RippleTheme在作曲material 1.7.0中被废弃

如何使用单个代码库使用不同的firebase项目创建多个应用程序ID apk

以正确的方式从房间收集流量

如何完全隐藏的元素堆叠在CardView?

滚动屏幕时更改按钮外观

如何处理谷歌未经证实的应用程序拒绝?

如何在Android中编写挂起函数和stateflow的单元测试

可组合:don';t剪辑视图

Android studio应用判断无法打开离线数据库

使用 Gadle kotlin 为多模块 Android 代码库设置 jacoco

使用 Kotlin 在 Android 中导航时如何防止 ViewModel 被杀死?

从活动共享视图模型以使用 hilt 组合函数

自定义 Compose Arrangement 以在 LazyRow/LazyColumn 的开头和结尾添加额外的间距

清洁架构中的服务

Hilt 依赖注入重复绑定错误

如何在 Dolphin 中启用 android studio new logcat | 2021.3.1 金丝雀 6?

为 AlertDialog 的消息文本设置自定义字体

是什么让 Android Studio 中的按钮变成紫色?加上新手的其他奇怪行为

关于launchWhenX和repeatOnLifecycle的问题

使用 Android 字符串数组在 Room 中迁移