单击时找不到局部变量,调试器打开Looper.java,应用程序死亡

单击时找不到局部变量,调试器打开Looper.java,应用程序死亡,java,android,loops,android-viewpager,Java,Android,Loops,Android Viewpager,我正在尝试学习如何制作一个带有点的viewPager来显示进度,基本上就是那些欢迎屏幕,我正在学习一个教程。它有很好的注释,我似乎知道发生了什么,但是当我点击我的“下一步”按钮时,应用程序就死了 我附上下面的代码,以及我在调试器中得到的错误截图。希望有人能帮忙。我已经返回了教程中的所有内容,以确保不是我的“创造性输入”造成混乱,但它仍然崩溃。“跳过”按钮工作正常: myViewPagerAdapter = new MyViewPagerAdapter(); viewPager.setAd

我正在尝试学习如何制作一个带有点的viewPager来显示进度,基本上就是那些欢迎屏幕,我正在学习一个教程。它有很好的注释,我似乎知道发生了什么,但是当我点击我的“下一步”按钮时,应用程序就死了

我附上下面的代码,以及我在调试器中得到的错误截图。希望有人能帮忙。我已经返回了教程中的所有内容,以确保不是我的“创造性输入”造成混乱,但它仍然崩溃。“跳过”按钮工作正常:

myViewPagerAdapter = new MyViewPagerAdapter();
    viewPager.setAdapter(myViewPagerAdapter);
    viewPager.addOnPageChangeListener(viewPagerPageChangeListener);

    btnSkip.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            launchHomeScreen();
        }
    });

    btnNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // checking for last page
            // if last page home screen will be launched
           int current = getItem(+1);
            if (current < layouts.length) {
                // move to next screen
                viewPager.setCurrentItem(current);
            } else {
                launchHomeScreen();
            }
        }
    });
}
myViewPagerAdapter=新的myViewPagerAdapter();
设置适配器(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
btnSkip.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
启动主屏幕();
}
});
btnNext.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//检查最后一页
//如果最后一页主页将启动
int current=getItem(+1);
if(当前
这是我得到的“致命例外”:

E/AndroidRuntime:致命异常:主 进程:com.example.android.signs,PID:31291 java.lang.ArrayIndexOutOfBoundsException:长度=1;索引=1 在com.example.android.signs.WelcomeActivity.addBottomDots上(WelcomeActivity.java:99) 在com.example.android.signs.WelcomeActivity.access$400(WelcomeActivity.java:24) 在com.example.android.signs.WelcomeActivity$2.onPageSelected上(WelcomeActivity.java:123) 在android.support.v4.view.ViewPager.dispatchOnPageSelected上(ViewPager.java:1947) 位于android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:686) 位于android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:670) 位于android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:631) 位于android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:612) 位于com.example.android.signs.WelcomeActivity$1.onClick(WelcomeActivity.java:80) 在android.view.view.performClick上(view.java:6305) 在android.view.view$PerformClick.run(view.java:24840) 位于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:6501) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 申请终止

^在这里,我一直希望它只是跨过一步,进入下一页

^当我跨过这一步时,我得到一个“找不到局部变量'btnNext'”,它把我带到looper并卡住了。在gradle中发现了一些关于人们关闭testCoverage的主题,但没有,仍然添加了它并将其设置为“false”,但错误保持不变

还添加了存储库:

private void addBottomDots(int currentPage){
dots=新文本视图[layouts.length];
int[]colorsActive=getResources().getIntArray(R.array.array\u dot\u活动);
int[]colorsInactive=getResources().getIntArray(R.array.array\u dot\u inactive);
int index=currentPage;
dotsLayout.removeallview();
对于(int i=0;i0)
点[currentPage].setTextColor(颜色活动[0]);
}

问题在于,您将当前页面(正在增加)用作未增加的数组的索引。点阵的索引将始终为0,因此只需使用0。我想,当我什么都看不懂的时候,很难说我能一直看到主屏幕。我想你甚至不需要点阵。

oooh我的天啊,它修好了,非常感谢你。调试器很早就停止了,所以我甚至没有在下面查找问题。上帝啊非常感谢。
 private void addBottomDots(int currentPage) {
        dots = new TextView[layouts.length];

        int[] colorsActive = getResources().getIntArray(R.array.array_dot_active);
        int[] colorsInactive = getResources().getIntArray(R.array.array_dot_inactive);
        int index = currentPage;
        dotsLayout.removeAllViews();
        for (int i = 0; i < dots.length; i++) {
            dots[i] = new TextView(this);
            dots[i].setText(Html.fromHtml("&#8226;"));
            dots[i].setTextSize(35);
            dots[i].setTextColor(colorsInactive[0]);
            dotsLayout.addView(dots[i]);
        }

        if (dots.length > 0)
            dots[currentPage].setTextColor(colorsActive[0]);
    }