1

我希望你能帮助我,我正在尝试在我的android项目中实现autovalue,但是没有生成代码。

我在 app/build.gradle 中添加了:

provided 'com.google.auto.value:auto-value:1.5.3'
annotationProcessor 'com.google.auto.value:auto-value:1.5.3'

annotationProcessor 'com.ryanharter.auto.value:auto-value-gson:0.7.0'
compile 'com.ryanharter.auto.value:auto-value-gson-annotations:0.7.0'

在编译器>注释处理器中的android studio 3.0默认设置中,我选中了启用注释处理,并选择了从项目类路径中获取处理器。

我创建了这样的 AutoValueGsonFactory 类:

import com.google.gson.TypeAdapterFactory;
import com.ryanharter.auto.value.gson.GsonTypeAdapterFactory;

@GsonTypeAdapterFactory
public abstract class AutoValueGsonFactory implements TypeAdapterFactory {

    // Static factory method to access the package
    // private generated implementation
    public static TypeAdapterFactory create() {
        return new AutoValueGson_AutoValueGsonFactory();
    }
}

然后我点击构建>重建项目

但是不工作,抛出这个错误:

错误:(16, 20) 错误:找不到符号类 AutoValueGson_AutoValueGsonFactory

我做错了什么或我错过了什么?

4

1 回答 1

1

创建一个模型类,然后重建项目。现在错误将消失:)

下面是在 android studio 中使用ROBOPOJO插件创建的示例模型类

import com.google.auto.value.AutoValue;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.Gson;
import com.intellicar.finder.Data;

@AutoValue
public abstract class LoginData{

    @SerializedName("msg")
    public abstract String msg();

    @SerializedName("data")
    public abstract Data data();

    @SerializedName("err")
    public abstract Object err();

    @SerializedName("status")
    public abstract String status();

    public static TypeAdapter<LoginData> typeAdapter(Gson gson) {
        return new AutoValue_LoginData.GsonTypeAdapter(gson);
    }
}
于 2018-04-19T08:32:14.923 回答