2016-07-30 20 views
2

LogCat:Autovalue - Fehler beim öffentlichen uk.ivanc.archimvp.model.entities.Campaigns() aufrufen, ohne args

Ursache:java.lang.InstantiationException: Can't instantiate abstract class uk.ivanc.archimvp.model.entities.Campaigns

detailMessage:Failed to invoke public uk.ivanc.archimvp.model.entities.Campaigns() with no args

Kampagnen.java

@AutoValue 
public abstract class Campaigns implements Parcelable{ 

    public abstract String remaining_days_formatted(); 

    public abstract String end_time_formatted(); 

    public abstract String badge_url(); 

    public abstract String newsletter_urlkey(); 

    public abstract String id_campaign(); 

    public abstract String navigation_url(); 

    public abstract Object promotion_line(); 

    public abstract ImmutableList<Videos> videos(); 

    public abstract String start_time_formatted(); 

    public abstract String subline(); 

    public abstract String banner_url(); 

    public abstract Object banner_url_original(); 

    public abstract String message_line_style(); 

    public abstract String end_time(); 

    public abstract String description(); 

    public abstract String name(); 

    public abstract Images images(); 

    public abstract String start_time(); 

    public abstract String url_key(); 

    public abstract String message_line(); 

    public abstract Object themeday(); 

    public static Builder builder() { 
     return new AutoValue_Campaigns.Builder(); 
    } 

    @AutoValue.Builder 
    public abstract static class Builder { 
     public abstract Builder remaining_days_formatted(String value); 

     public abstract Builder end_time_formatted(String value); 

     public abstract Builder badge_url(String value); 

     public abstract Builder newsletter_urlkey(String value); 

     public abstract Builder id_campaign(String value); 

     public abstract Builder navigation_url(String value); 

     public abstract Builder promotion_line(Object value); 

     public abstract Builder videos(ImmutableList<Videos> value); 

     public abstract Builder start_time_formatted(String value); 

     public abstract Builder subline(String value); 

     public abstract Builder banner_url(String value); 

     public abstract Builder banner_url_original(Object value); 

     public abstract Builder message_line_style(String value); 

     public abstract Builder end_time(String value); 

     public abstract Builder description(String value); 

     public abstract Builder name(String value); 

     public abstract Builder images(Images value); 

     public abstract Builder start_time(String value); 

     public abstract Builder url_key(String value); 

     public abstract Builder message_line(String value); 

     public abstract Builder themeday(Object value); 

     public abstract Campaigns build(); 
    } 

} 

-Code erzeugt die Ausnahme (onError heißt)

public void getCampaigns() { 
     WestwingApplication application = WestwingApplication.get(campaignsMvpView.getContext()); 
     WestwingService westwingService = application.getWestwingService(); 
     subscription = westwingService.getCampaigns() 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribeOn(application.defaultSubscribeScheduler()) 
       .subscribe(new Observer<List<Campaigns>>() { 
        @Override 
        public void onCompleted() { 

        } 

        @Override 
        public void onError(Throwable e) { 

        } 

        @Override 
        public void onNext(List<Campaigns> campaigns) { 
         campaignsMvpView.showCampaigns(campaigns); 
        } 
       }); 
    } 
} 

dependencies.gradle

dependencies = [ 
      appCompat: "com.android.support:appcompat-v7:$supportLibraryVersion", 
      cardView: "com.android.support:cardview-v7:$supportLibraryVersion", 
      recyclerView: "com.android.support:recyclerview-v7:$supportLibraryVersion", 
      retrofit: "com.squareup.retrofit2:retrofit:$retrofitVersion", 
      retrofitConverterGson: "com.squareup.retrofit2:converter-gson:$retrofitVersion", 
      retrofitAdapterRxJava: "com.squareup.retrofit2:adapter-rxjava:$retrofitVersion", 
      picasso: 'com.squareup.picasso:picasso:2.5.2', 
      rxAndroid: 'io.reactivex:rxandroid:1.1.0', 
      circleImageView: 'de.hdodenhof:circleimageview:1.3.0', 
      jUnit: 'junit:junit:4.12', 
      mockito: 'org.mockito:mockito-core:1.10.19', 
      robolectric: 'org.robolectric:robolectric:3.0', 
      autoparcel: 'frankiesardo:auto-parcel:1.0.1', 
      aptautoparcel: 'frankiesardo:auto-parcel:1.0.1', 
      palette: "com.android.support:palette-v7:$supportLibraryVersion", 
      design: "com.android.support:design:$supportLibraryVersion" 
    ] 
+0

Können Sie Ihre 'build.gra dle' Datei, um uns zu zeigen, auf welche Bibliotheken Sie sich verlassen und welche Versionen von 'AutoValue' und seine Erweiterungsbibliotheken Sie gerade verwenden? – shaunkawano

+0

@shaunkawano Ich habe die Datei 'dependencies.graddle' hinzugefügt, die die Version von lib anzeigt – Abdellah

Antwort

0

Fügen Sie diese Methode, um Ihr Modell

public static TypeAdapter<Campaigns> typeAdapter(Gson gson) { 
    return new AutoValue_Campaigns.GsonTypeAdapter(gson);}