android - 在 recyclerview 上设置 onScrollChangeListener 时出现 java.lang.NoClassDefFoundError

标签 android android-recyclerview

我试图让这个 onScrollListener 在 23 以下的 api 版本上工作,当我尝试这样做时,我遇到了我在标题中提到的错误:

这里我遇到了一个错误:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        list.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                    //If scrolled at last then
                if (isLastItemDisplaying(recyclerView)) {
                    // Calling the method get data again
                    getData();
                }
            }
        });
    } else {
        // here i'm getting an error
        list.setOnScrollChangeListener(new RecyclerView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                    // If scrolled at last then
                if (isLastItemDisplaying(list)) {
                    // Calling the method get data again
                    getData();
                }
            }
        });
    }

我已启用 multidex 支持并编译 'com.android.support:multidex:1.0.1' 但我仍然遇到错误。我还在类中初始化了 MultiDex,它像这样扩展应用程序:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

编辑:

                                                                                   Process: com.dusandimitrijevic.pdssolution, PID: 13882
                                                                               java.lang.NoClassDefFoundError: com.dusandimitrijevic.pdssolution.fragments.JokesFragment$1                                                                                 at com.dusandimitrijevic.pdssolution.fragments.JokesFragment.onCreateView(JokesFragment.java:99)
                                                                                   at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
                                                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
                                                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
                                                                                   at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)
                                                                                   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
                                                                                   at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
                                                                                   at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
                                                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:1177)
                                                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)
                                                                                   at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1545)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1435)
                                                                                   at android.widget.LinearLayout.measureVertical(LinearLayout.java:721)
                                                                                   at android.widget.LinearLayout.onMeasure(LinearLayout.java:612)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1435)
                                                                                   at android.widget.LinearLayout.measureVertical(LinearLayout.java:721)
                                                                                   at android.widget.LinearLayout.onMeasure(LinearLayout.java:612)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1075)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
                                                                                   at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1435)
                                                                                   at android.widget.LinearLayout.measureVertical(LinearLayout.java:721)
                                                                                   at android.widget.LinearLayout.onMeasure(LinearLayout.java:612)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1435)
                                                                                   at android.widget.LinearLayout.measureVertical(LinearLayout.java:721)
                                                                                   at android.widget.LinearLayout.onMeasure(LinearLayout.java:612)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
                                                                                   at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2897)
                                                                                   at android.view.View.measure(View.java:18596)
                                                                                   at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2248)
                                                                                   at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1306)
                                                                                   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1548)
                                                                                   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1191)
                                                                                   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6642)
                                                                                   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
                                                                                   at android.view.Choreographer.doCallbacks(Choreographer.java:590)
                                                                                   at android.view.Choreographer.doFrame(Choreographer.java:560)
                                                                                a

最佳答案

View.OnScrollChangeListener在 API 级别 23 中添加。 解决方法是使用

mRecycleView.getViewTreeObserver().addOnScrollChangedListener(listenerInstance);

如果您尝试获取 X、Y 值,上述回调监听器不会有太大帮助。

关于android - 在 recyclerview 上设置 onScrollChangeListener 时出现 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36917815/

相关文章:

android - 库不生成 jar 文件

android - RecyclerView 未使用 notifyDatasetChanged 更新,直到向上滚动

android - 如何更新嵌套 recyclerview 项目的项目?

java - 按位置组织 RecyclerView 中的 View

android - Phonegap/Cordova - 构建 Apk

java - 如何从 firebase 读取子数据

android - 无法在发布 apk 时访问远程 API,应用程序具有互联网权限

android - 从 Custom Content Provider 访问数据

android - 从 RecyclerView 到 Activity 的共享元素转换不起作用

java - 运行我的应用程序时,我得到了一个N​​ullPointerExeption,但我正在努力对其进行修复