【问题标题】:Lobok @AllArgsConstructor throw exception when app start on Android 4.2Lobok @AllArgsConstructor 在 Android 4.2 上启动应用程序时抛出异常
【发布时间】:2018-03-07 12:50:19
【问题描述】:

我有模特

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProductsRequest {
    private String initiatorType;
    private String categoryCode;

我有 lombok 配置:

lombok.anyConstructor.suppressConstructorProperties = true
lombok.addGeneratedAnnotation = false

在带有 API 27 的 Android 上(真实设备上的 Android 7)一切正常。在 android 17(模拟器上的 Android 4.2)在这一行我得到错误:

return restApiFactory.getProductService().getProducts(productsRequest);

错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "java.beans.ConstructorProperties" on path: /data/app/my-1.apk

如果我改变了

 @AllArgsConstructor
    @NoArgsConstructor

标准构造函数 - 一切正常

【问题讨论】:

    标签: android lombok


    【解决方案1】:

    因为我从未遇到过 ctor-s 的此类问题,所以我鼓励您更详细地描述您的问题。我假设您手动编写的代码与生成的代码 lombok 有所不同。可能是方法的可见性或添加了一些特殊注释。

    使用 delombok 功能 (https://projectlombok.org/features/delombok),您可以将注释扩展为真实代码。比您可以区分手动编写的代码和 lombok 生成的代码。因此,您可以探索在生成的代码 lombok 上方是否添加了 @java.beans.ConstructorProperties。 (Delombok using Gradle)

    注意:实际上您将有 3 个 ctor:@AllArgsConstructor、@NoArgsConstructor 和 @RequiredArgsConstructor 隐含在 @Data 中。

    根据您的 lombok.config 文件,ctor-s 不应该有注释。可能是您的某些口味缺少类路径上的 lombok.config 吗?

    【讨论】:

      猜你喜欢
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多