当Android 4.2上的应用启动时,Lobok @AllArgsConstructor抛出异常

时间:2018-03-07 12:50:19

标签: android lombok

我有模特

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

我有lombok配置:

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

在Android上使用API​​ 27(真实设备上的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

to standart constructors - 一切正常

1 个答案:

答案 0 :(得分:0)

因为我从未在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 吗?