Jem*_*rov 9 android runtime-error android-recyclerview
我有RecyclerView自定义列表项和CardView项目,两个不同Activities.现在,当我从列表中删除最后一个剩余项目时,我收到错误,我没有更改任何与这些acitivities或adapter或相关的代码RecyclerView.
错误是:
java.lang.NullPointerException
at android.support.v7.widget.OrientationHelper$2.getDecoratedStart(OrientationHelper.java:316)
at android.support.v7.widget.LinearLayoutManager.findOneVisibleChild(LinearLayoutManager.java:1633)
at android.support.v7.widget.LinearLayoutManager.findFirstVisibleChildClosestToStart(LinearLayoutManager.java:1453)
at android.support.v7.widget.LinearLayoutManager.computeScrollOffset(LinearLayoutManager.java:997)
at android.support.v7.widget.LinearLayoutManager.computeVerticalScrollOffset(LinearLayoutManager.java:969)
at android.support.v7.widget.RecyclerView.computeVerticalScrollOffset(RecyclerView.java:1175)
at android.view.View.canScrollVertically(View.java:12745)
at android.support.v4.view.ViewCompatICS.canScrollVertically(ViewCompatICS.java:35)
at android.support.v4.view.ViewCompat$ICSViewCompatImpl.canScrollVertically(ViewCompat.java:940)
at android.support.v4.view.ViewCompat.canScrollVertically(ViewCompat.java:1237)
at android.support.v7.widget.RecyclerView$LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6594)
at android.support.v7.widget.RecyclerView$LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6573)
at android.support.v7.widget.LinearLayoutManager.onInitializeAccessibilityEvent(LinearLayoutManager.java:204)
at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate.java:66)
at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:228)
at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:56)
at android.view.View.onInitializeAccessibilityEvent(View.java:5292)
at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5160)
at android.view.View$AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:20325)
at android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatIcs.java:117)
at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:210)
at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:358)
at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:255)
at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatJellyBean.java:82)
at android.view.View.sendAccessibilityEventUnchecked(View.java:5143)
at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.run(ViewRootImpl.java:7653)
at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.runOrPost(ViewRootImpl.java:7679)
at android.view.ViewRootImpl.postSendWindowContentChangedCallback(ViewRootImpl.java:6871)
at android.view.ViewRootImpl.notifySubtreeAccessibilityStateChanged(ViewRootImpl.java:6944)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2746)
at android.view.View.notifySubtreeAccessibi
Run Code Online (Sandbox Code Playgroud)
这里的代码没有任何相关内容.我正在使用dependencies:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.android.support:cardview-v7:21.0.+'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-v4:21.0.3'
compile 'se.emilsjolander:StickyScrollViewItems:1.+'
compile 'net.i2p.android.ext:floatingactionbutton:1.8.0'
compile 'com.afollestad:material-dialogs:0.6.4.7'}
Run Code Online (Sandbox Code Playgroud)
知道可能有什么问题吗?
我通过为LinearLayoutManager创建子类来为此做出解决方法.这是一个不幸的解决方案,但至少它会工作,直到支持库修复此问题...
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
public class LinearLayoutManagerWrapper extends LinearLayoutManager {
private static final String TAG = "LinearLayoutManagerWrapper";
public LinearLayoutManagerWrapper(final Context context) {
super(context);
}
@Override
public void onInitializeAccessibilityEvent(final AccessibilityEvent event) {
try {
super.onInitializeAccessibilityEvent(event);
} catch (final NullPointerException e) {
Log.e(TAG, "NullPointerException in onInitializeAccessibilityEvent(" + event +
')', e);
}
}
@Override
public void onInitializeAccessibilityEvent(final RecyclerView.Recycler recycler,
final RecyclerView.State state, final AccessibilityEvent event) {
try {
super.onInitializeAccessibilityEvent(recycler, state, event);
} catch (final NullPointerException e) {
Log.e(TAG, "NullPointerException in onInitializeAccessibilityEvent(" + recycler +
", " + state + ", " + event + ')', e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
发生错误是因为其中一个库使用了和 的v7:22库。我确实通过编写以下内容来覆盖依赖项以使用 v7:21:appcompatrecyclerview
compile ('com.android.support:appcompat-v7:21.0.+'){force=true}
compile ('com.android.support:recyclerview-v7:21.0.+'){force=true}
Run Code Online (Sandbox Code Playgroud)
我仍然不确定为什么 v7:22 最新库在回收器视图最后一项删除时出现错误。
| 归档时间: |
|
| 查看次数: |
2310 次 |
| 最近记录: |