- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
3 天前我已经迁移到 SDK Android 27.1.0,并且有一些像这样的崩溃,我不明白为什么。它(目前)出现在 Android 8 和 6 上。
BadParcelableException ClassNotFoundException when unmarshalling: android.support.v4.app.FragmentManagerState android.support.v4.app.Fragment.setUserVisibleHint
android.os.Parcel.readParcelableCreator (Parcel.java:2916)
android.os.Parcel.readParcelable (Parcel.java:2842)
android.os.Parcel.readValue (Parcel.java:2745)
android.os.Parcel.readArrayMapInternal (Parcel.java:3114)
android.os.BaseBundle.initializeFromParcelLocked (BaseBundle.java:273)
android.os.BaseBundle.unparcel (BaseBundle.java:226)
android.os.BaseBundle.putBoolean (BaseBundle.java:532)
arrow_right
android.support.v4.app.Fragment.setUserVisibleHint (Fragment.java:960)
android.support.v4.app.FragmentStatePagerAdapter.instantiateItem (FragmentStatePagerAdapter.java:121)
android.support.v4.view.ViewPager.addNewItem (ViewPager.java:1004)
android.support.v4.view.ViewPager.populate (ViewPager.java:1218)
android.support.v4.view.ViewPager.populate (ViewPager.java:1086)
android.support.v4.view.ViewPager$3.run (ViewPager.java:267)
android.view.Choreographer$CallbackRecord.run (Choreographer.java:911)
android.view.Choreographer.doCallbacks (Choreographer.java:723)
android.view.Choreographer.doFrame (Choreographer.java:655)
android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:897)
android.os.Handler.handleCallback (Handler.java:790)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loop (Looper.java:164)
android.app.ActivityThread.main (ActivityThread.java:6494)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
这是我的适配器:
public abstract class CalendarPagerAdapter extends FragmentStatePagerAdapter {
private static final String TAG = LogUtils.makeLogTag(CalendarPagerAdapter.class);
protected DateTime mDateTime;
private final int mCount;
protected int mTodayPosition;
public static class CalendarContext {
public int mRange; // range = nb of days supported
public int mTodayPosition; // Today index in this area
public int mCurrentWeek; // Week number of today
public DateTime mFrom, mTo; // Compute from and to datetimes
public boolean mIsSundayFirstDay;
public CalendarContext(int area, int todayPosition, DateTime from, DateTime to,
int currentWeek, boolean isSundayFirstDay) {
mRange = area;
mTodayPosition = todayPosition;
mFrom = from;
mTo = to;
mCurrentWeek = currentWeek;
mIsSundayFirstDay = isSundayFirstDay;
}
}
public static CalendarContext computeAreaAndTodayPosition(int initialArea, int initialTodayPosition) {
// Compute min / max dates from now
DateTime from = new DateTime().minusDays(initialArea - initialTodayPosition).dayOfWeek().withMinimumValue();
DateTime to = new DateTime().plusDays(initialTodayPosition).dayOfWeek().withMaximumValue();
boolean isSundayFirstDay = false;
Calendar calendar = Calendar.getInstance(CompatUtils.getLocale(false));
if (calendar.getFirstDayOfWeek() == Calendar.SUNDAY) {
isSundayFirstDay = true;
from = from.minusDays(1);
to = to.minusDays(1);
}
LogUtils.LOGD("XXXX", "from dt=" + from.toString());
LogUtils.LOGD("XXXX", "to dt=" + to.toString());
// Compute nb days area supported
int daysRange = daysBetween(from, to).getDays() + 1;
LogUtils.LOGD("XXXX", "daysRange=" + daysRange);
// Compute today position
int todayPosition = daysBetween(from, DateTime.now().withTimeAtStartOfDay()).getDays() + 1;
LogUtils.LOGD("XXXX", "todayPosition=" + todayPosition);
int currentWeek = DateTime.now().getWeekOfWeekyear() - from.getWeekOfWeekyear();
LogUtils.LOGD("XXXX", "currentWeek=" + currentWeek);
return new CalendarContext(daysRange, todayPosition, from, to, currentWeek, isSundayFirstDay);
}
public CalendarPagerAdapter(FragmentManager mgr, int count, int todayPosition) {
super(mgr);
mDateTime = DateTime.now();
mCount = count;
mTodayPosition = todayPosition;
}
@Override
public int getCount() {
return mCount;
}
public boolean isTodayPosition(int position) {
return computeDifferenceDays(position) == 0;
}
public boolean isPastPosition(int position) {
return computeDifferenceDays(position) < 0;
}
public boolean isFuturPosition(int position) {
return computeDifferenceDays(position) > 0;
}
protected int computeDifferenceDays(int position) {
return position - getCalendarTodayPosition();
}
public long convertPositionToMs(int position) {
return convertPositionToMs(mDateTime, position);
}
public long convertMinPositionToMs() {
return convertPositionToMs(mDateTime, 0);
}
public long convertMaxPositionToMs() {
return convertPositionToMs(mDateTime, mCount - 1);
}
public String convertPositionToDate(int position) {
return TimeUnits.dateTimeToDateServer(new DateTime(convertPositionToMs(position)));
}
public long convertPositionToMs(DateTime datime, int position) {
int dayNum = computeDifferenceDays(position);
if (dayNum < 0)
return datime.minusDays(Math.abs(dayNum)).getMillis();
else if (dayNum > 0)
return datime.plusDays(Math.abs(dayNum)).getMillis();
else
return datime.getMillis();
}
public int convertMsToPosition(long millis) {
DateTime dtReceived = new DateTime(millis).withTimeAtStartOfDay();
return convertDateTimeToPosition(dtReceived);
}
public int convertDateTimeToPosition(DateTime dtReceived) {
DateTime now = DateTime.now().withTimeAtStartOfDay();
int nbDays = daysBetween(now, dtReceived).getDays();
return getCalendarTodayPosition() + nbDays;
}
public int getCalendarTodayPosition() {
return mTodayPosition;
}
public void shiftWithOffset(WeekDatePicker weekDatePicker, TextView weekDatePickerDayTextView,
DateTime currentSelectedDate, int offset) {
if (offset < 0 && mTodayPosition > 0) mTodayPosition += offset;
mDateTime = DateTime.now();
weekDatePicker.refreshTodayPosition();
weekDatePickerDayTextView.setText(TimeUnits.dateTimeToString(
currentSelectedDate, true, true, true, true, true));
}
}
你们有解决这个问题的想法吗?
非常感谢!
最佳答案
@XJIOP 说的是对的,我的产品也有同样的问题,但我无法找到崩溃的原因,我按照@XJIOP 路径并产生了错误,我通过更新紧凑版本解决了错误来自
appcompat 27.1.0 to 27.1.1
因为我使用的是混淆器,所以我还在我的混淆器中添加了以下行
如果您在生产构建中使用混淆器,请将以下行添加到混淆器中,否则忽略
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
在添加了 pro guard line 并更新了压缩库后,我能够解决这个问题,并且在我更新的生产版本中还没有报告错误。希望这会帮助其他人
关于android - BadParcelableException :ClassNotFoundException when unmarshalling: android. support.v4.app.FragmentManagerState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49228979/
我在尝试传递 Parcelable 时遇到此错误通过 Intent .基本上,我已经将我的类(class)实现为 Parcelable ,但我无法将该对象传递给另一个 Activity ,因为它在读取
我的 Activity 允许用户选择地理范围,并通过 setResult 函数返回它们: public class MyActivity extends Activity . . buttonOk
运行稍加修改的 Google map 示例会在 Google map 代码中引发 BadParcelableException。 LatLng 类是 parcelable 但找不到。谷歌地图代码似乎试
我遇到了著名的 BadParcelableException,但我看不出问题出在哪里,这是我的 Parcelable 类: public class PaymentInfoViewModel impl
我对 Serializable 和 Parcelable 很陌生。我很难将此对象的实例从应用程序传递到远程服务: public class Event implements Parcelable, C
我有一个扩展 CoordinatorLayout 的自定义 View 我正在重写 onRestoreInstanceState 和 onSaveInstanceState 使用类扩展 BaseSave
这个错误似乎偶尔会发生,这很奇怪。它通常工作正常,但偶尔会爬起来。这是我的代码,它在 BroadcastReceiver 中: public void onReceive(Context contex
我不知道为什么会这样,我无法重现它。它在控制台中。 我真的很抱歉只输入了代码和日志猫,但我什至无法阅读日志猫,我之前没有遇到过这样的问题,我什至不知道从哪里开始。任何帮助将不胜感激。 这是日志猫, a
我有一个名为 AllStatStruct 的类。这个类包含三个属性,它们是我的类 StatStructCycle、StatStructHistory 和 MatrixStruct 的对象。每个类都扩展
值正在传递并且执行正常,但我看到这些被抛出到 logcat 中,我想消除它们,我检查了旧论坛但没有具体说明。我在下面发布我的代码,请告诉我为什么会不会出现这个问题 public class Execu
我一直在做一项任务,围绕为游戏《三十》(Yatzy 的一个变体)创建一个较小的应用程序。虽然我的 Parcelables 收到一些错误消息。该错误是根据 GameHandler 或 GameRound
我使用联系人选择器获取特定联系人的姓名。对于 Eclair 和后来我使用: startActivityForResult(new Intent(Intent.ACTION_PICK, Contacts
在 Firebase 中,我的生产应用程序(使用 Dexguard)在使用 Parcelable 时遇到了各种崩溃。 . 这些崩溃现在影响了近 200 名用户,并在 Firebase 上分为 3 个条
我在尝试从 Bundle 中检索时看到(不经常 - 很少 = cca 1/1000 次)BadParcelableException。 有人知道为什么会这样吗?我认为它应该总是发生,或者永远不会发生,
[错误] Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypacka
3 天前我已经迁移到 SDK Android 27.1.0,并且有一些像这样的崩溃,我不明白为什么。它(目前)出现在 Android 8 和 6 上。 BadParcelableException C
我的 android 应用程序的生产 apk 中出现以下异常已有 1 天了: java.lang.RuntimeException: Unable to start activity Componen
给定一个自定义类 org.example.app.MyClass implements Parcelable ,我想写一个List到一个包裹。我做了编码 List myclassList = ...
向 YouTube Android Player API 库工程师提交错误:请参阅 android-youtube-api 标签 在过去的一周半中,我注意到这个奇怪的 BadParcelableExc
向 YouTube Android Player API 库工程师提交错误:查看 android-youtube-api 标签 在过去一周半的时间里,我注意到这个奇怪的 BadParcelableEx
我是一名优秀的程序员,十分优秀!