【问题标题】:Create a Kotlin library in Android Studio在 Android Studio 中创建 Kotlin 库
【发布时间】:2018-09-10 00:43:17
【问题描述】:

我对 Android 和 JVM 平台都很陌生。使用 Android Studio,我想创建一个 Android 应用程序并将我的大部分业务逻辑放在一个库中。我也想只使用 Kotlin,而不是 Java。

当我转到File > New Module 时,列出的选项是

  • 手机和平板模块
  • Android 库
  • 即时应用
  • 功能模块
  • Android Wear 模块
  • Android 电视模块
  • Android Things 模块
  • 导入 Gradle 项目
  • 导入 Eclipse ADT 项目
  • 导入 .JAR/.AAR 包
  • Java 库

我可以使用Android Library 选项创建一个基于 Kotlin 的库,但这也包括很多用于处理资源和控件的文件。

我只想要一个纯 Kotlin 库。创建一个最简单的方法是什么?

  • 我可以删除 Android 库的一部分吗?
  • 我可以更改 Java 库中的某些设置吗?
  • 我可以下载一个插件,让我可以选择创建 Kotlin 库吗?

我对 Java/Kotlin/Android 项目中的文件组织仍然有些困惑。

【问题讨论】:

    标签: android android-studio kotlin


    【解决方案1】:

    您需要一个没有 Android 依赖项和资源的模块 - 这就是 Java 库 模块所做的,因此您首先要创建其中一个。从那里,您只需要在此模块中启用 Kotlin。

    您在创建模块时获得的build.gradle 文件是这样的:

    apply plugin: 'java-library'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    }
    

    您需要添加 Kotlin 插件和标准库。如果您还没有为项目中的所有模块添加 mavenCentral 存储库,您还需要添加它:

    apply plugin: 'java-library'
    apply plugin: 'kotlin'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    }
    
    repositories {
        mavenCentral()
    }
    

    这是假设您在项目级别 build.gradle 文件中声明了一个 kotlin_version,这是 Android 项目的常用方式,我相信如果您勾选复选框以使用 Kotlin,Android Studio 就是这样配置项目的.


    通过对库的 build.gradle 进行这些更改,您可以从库的源文件夹 (/src/main/java/your/package/name) 中删除自动生成的 MyClass.java 文件,然后开始添加 Kotlin 文件。如果您愿意,还可以将/src/main/java 文件夹重命名为/src/main/kotlin。或者您可以同时使用这两个文件夹,这完全取决于您。

    【讨论】:

    • “插件版本与库版本不同”警告:stackoverflow.com/questions/49956051/…
    • 如何将 kotlin 类包设为私有,以便使用我的库的应用无法导入这些文件?
    • 无法找到项目的匹配配置:DD_kotlin_lib:所有可消耗的配置都没有属性 - 尽管库构建成功
    • @zsmb13 有没有全面的解释为什么“Java or Kotlin Library”模块不能使用Android依赖?就资源和类似的东西而言,很明显——我们无法访问 android.jar,对吧?但是,如果我想引用 livedata 依赖项,为什么不允许这样做,也是因为对 android.jar 的临时依赖项? “Java 或 Kotlin 库”应该与任何操作系统运行时分开?
    【解决方案2】:

    创建 Android 工作室项目 之后创建尽可能多的模块,这些模块基本上是 Android 库 您可以选择模块的语言(java/kotlin)

    额外的 将您的模块上传到 github 并使用 jitpcak 工具使您的模块成为这样的库 实施 'com.我的。模块:1.0'

    并在未来的任何项目中使用您的模块

    【讨论】:

    • 旧帖子,但我想更正一下。 OP 想要添加一个新模块来充当业务层。 Android 模块不是这样做的方法,OP 需要一个“Java 库”。根据干净的架构,内部模块不得包含任何与 Android API 相关的内容。 Android 模块添加了许多 Android 特定的文件夹和组件,必须将它们删除以遵守干净的架构,这是很多工作。接受的答案是最简单的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多