【问题标题】:How to properly set up Lombok in Android Studio 3.0如何在 Android Studio 3.0 中正确设置 Lombok
【发布时间】:2018-01-30 10:54:07
【问题描述】:

我想知道我在 Android Studio 3.0 Beta 2 的 Lombok 设置中做错了什么?

这就是我的 Gradle 构建文件的样子:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath "io.franzbecker:gradle-lombok:1.10"
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}

allprojects {
    apply plugin: "eclipse"
    apply plugin: "idea"

    version = '1.0'
    ext {
        appName = "MyAppName"
        gdxVersion = '1.7.0'
    }

    repositories {
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    }
}

project(":desktop") {
    apply plugin: "java"


    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
    }
}

project(":android") {
    apply plugin: "android"

    configurations { natives }

    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
    }
}

project(":core") {
    apply plugin: "io.franzbecker.gradle-lombok"
    apply plugin: "java"

    dependencies {
        compile "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
        compileOnly "org.projectlombok:lombok:1.16.18"
    }
}

tasks.eclipse.doLast {
    delete ".project"
}

我已经安装了 lombok 插件,lombok 的东西也在 IDE 中正确显示,但是当我想构建项目时,Gradle 找不到 Lombok 创建的 getter/setter。我尝试按照https://projectlombok.org/setup/android 和其他有关此设置的堆栈溢出页面的教程进行操作,但没有任何效果。在 Android Studio 2.3 中,我什至无法正确启用注释处理,这就是为什么我更新到最新的 beta 版本,它至少可以工作。

【问题讨论】:

  • 我假设您安装了插件(Preferences.. -> Plugins)并且现在启用了注释处理?我刚刚查看了我正在使用 Lombok 的一个项目,这里是与 Lombok 相关的导入: compile 'org.projectlombok:lombok:1.16.16' compile 'javax.annotation:jsr250-api:1.0' provided 'javax.annotation :jsr250-api:1.0'
  • 我试过了,但它并没有真正起作用。你能不能把你的一个项目发给我,没有实际的 src,这样我就可以看到它和我的设置之间的区别?
  • 现在不能这样做,但我也注意到我添加了一个顶级 lombok.config 文件(在我的 main/java 文件夹中),其中包含以下行:lombok.anyConstructor .suppressConstructorProperties=true
  • 我使用 lombok.anyConstructor.suppressConstructorProperties=true 进行了尝试,我的项目可以编译,但不会生成任何 getter/setter/constructor。什么都没有。

标签: java android android-studio android-gradle-plugin lombok


【解决方案1】:

我也有同样的问题。最后我得到了这个解决方案 -

compileOnly 'org.projectlombok:lombok:1.16.18'
compileOnly 'javax.annotation:javax.annotation-api:1.3.1'
annotationProcessor 'org.projectlombok:lombok:1.16.18'

【讨论】:

    【解决方案2】:

    您需要使用新的annotationProcessor 而不是aptGradle migration annotationProcessor

    annotationProcessor "org.projectlombok:lombok:1.16.18"
    

    我和你有同样的问题,现在可以了。

    【讨论】:

    • 你需要用annotationProcessor ...替换所有apt ...,对于lombok和任何其他使用apt的lib。
    【解决方案3】:

    我遇到了同样的问题,将 AS 升级到 3.0 并将 Gradle 升级到 4.1,lombok 停止生成 setter/getter。

    因此,如果您将 lombok 插件与 IntelliJ 一起使用,那么我将 lombok 从最新的稳定边缘版本降级到 0.15.17.2 解决了它。

    This issue helped me solving it

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 2018-08-24
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多