я уже пытался добавить этотParcelable класс вызывает «немаршалинг код 33 неизвестного типа со смещением 172» ошибки после повторного ввода приложения
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
к моему proguard-rules.pro файл как предложено: Proguard causing RuntimeException (Unmarshalling unknown type code) in Parcelable class
Здесь это мой класс, который реализует разумные решения, есть ли какие-либо проблемы, которые могут вызвать эту ошибку? Правильно ли я занимаюсь реализацией?
Я получаю сообщение об ошибке, а последующее усилие закрывается после того, как приложение работает в течение длительного периода времени и было убито операционной системой (однако я не получаю ошибку, если я удаляю окно многозадачности) ,
public class WeatherData implements Parcelable{
public Condition condition = new Condition();
public Forecast forecast = new Forecast();
public Location location = new Location();
public WeatherData() {
//empty
}
public static class Condition {
public static String currentDescription;
public static String date;
public static int currentTemp;
}
public static class Forecast {
public static List<Integer> tempMin = new ArrayList<>();
public static List<Integer> tempMax = new ArrayList<>();
public static List<String> description = new ArrayList<>();
public static List<Integer> windSpeed = new ArrayList<>();
public static List<String> dayOfWeek = new ArrayList<>();
public static List<String> imageURL = new ArrayList<>();
}
public static class Location {
public static String name;
}
public WeatherData(Parcel in) {
//empty
}
public static final Creator<WeatherData> CREATOR = new Creator<WeatherData>() {
@Override
public WeatherData createFromParcel(Parcel in) {
return new WeatherData(in);
}
@Override
public WeatherData[] newArray(int size) {
return new WeatherData[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
//location
parcel.writeString(Location.name);
//condition
parcel.writeString(Condition.currentDescription);
parcel.writeString(Condition.date);
parcel.writeInt(Condition.currentTemp);
//forecast
parcel.writeList(Forecast.tempMin);
parcel.writeList(Forecast.tempMax);
parcel.writeList(Forecast.description);
parcel.writeList(Forecast.windSpeed);
parcel.writeList(Forecast.dayOfWeek);
parcel.writeList(Forecast.imageURL);
}
EDIT:
Вот StackTrace
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.murraystudio.weatherapp, PID: 14219
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.murraystudio.weatherapp/com.murraystudio.weatherapp.MainActivity}: java.lang.NullPointerException: Attempt to read from field 'com.murraystudio.weatherapp.datamodels.WeatherData$Condition com.murraystudio.weatherapp.datamodels.WeatherData.condition' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.NullPointerException: Attempt to read from field 'com.murraystudio.weatherapp.datamodels.WeatherData$Condition com.murraystudio.weatherapp.datamodels.WeatherData.condition' on a null object reference
at com.murraystudio.weatherapp.WeatherFragment.updateWeatherUI(WeatherFragment.java:230)
at com.murraystudio.weatherapp.WeatherFragment.onCreateView(WeatherFragment.java:124)
at android.app.Fragment.performCreateView(Fragment.java:2353)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1153)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2039)
at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:176)
at android.app.Activity.performCreateCommon(Activity.java:6673)
at android.app.Activity.performCreate(Activity.java:6681)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Не могли бы вы опубликовать stacktrace? – degs
@degs В настоящее время в комплекте – sanic
@IntelliJAmiya, что вы имеете в виду? – sanic