从一个活动的Fragment里用Intent获取这个活动并跳转到MainImgActivity,运行后点击按钮跳转报空指针,MainImgActivity单独运行没有问题,请教一下怎么解决。错误:java.lang.RuntimeException: Unable to start activity ComponentInfo{io.github.ryanhoo.music/io.github.ryanhoo.music.ui.settings.MainImgActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference部分代码:
(点击按钮跳转事件Fragment):
 eq.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
              Intent intent = new Intent(getActivity(), MainImgActivity.class);
              startActivity(intent);
            }
        });
(MainImgActivity):
public class MainImgActivity extends Activity {    private RollPagerView mRollViewPager;    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        mRollViewPager = findViewById(R.id.roll_view_pager);        //设置播放时间间隔
        mRollViewPager.setPlayDelay(1000);
        //设置透明度
        mRollViewPager.setAnimationDurtion(500);
        //设置适配器
        mRollViewPager.setAdapter(new TestNormalAdapter());        //设置指示器(顺序依次)
        //自定义指示器图片
        //设置圆点指示器颜色
        //设置文字指示器
        //隐藏指示器
        mRollViewPager.setHintView(new IconHintView(this, R.drawable.point_focus, R.drawable.point_normal));
        mRollViewPager.setHintView(new ColorPointHintView(this, Color.YELLOW, Color.WHITE));
        mRollViewPager.setHintView(new TextHintView(this));
        mRollViewPager.setHintView(null);
    }    private class TestNormalAdapter extends StaticPagerAdapter {
        private int[] imgs = {
                R.drawable.img1,
                R.drawable.img2,
                R.drawable.img3,
                R.drawable.img4,
        };
        @Override
        public View getView(ViewGroup container, int position) {
            ImageView view = new ImageView(container.getContext());
            view.setImageResource(imgs[position]);
            view.setScaleType(ImageView.ScaleType.CENTER_CROP);
            view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            return view;
        }
        @Override
        public int getCount() {
            return imgs.length;
        }
    }    @Override
    public boolean onCreateOptionsMenu(Menu menu) {        return true;
    }    @Override
    public boolean onOptionsItemSelected(MenuItem item) {        return super.onOptionsItemSelected(item);
    }
}小弟水平很差,初学者,MainImgActivity也是别人分享的,还请高人多多指教,急求。

解决方案 »

  1.   

    你确定单独运行可以吗?
    mRollViewPager = findViewById(R.id.roll_view_pager);没转类型啊mRollViewPager =(RollPagerView) findViewById(R.id.roll_view_pager);
      

  2.   

     Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
    首先检查R.id.roll_view_pager这个控件是不是在   如果在的话   把类型转换的代码加上  
    mRollViewPager = (RollPagerView)findViewById(R.id.roll_view_pager);
      

  3.   

    可以,之前是有转型的,因为显示为灰色(Android studio主题),灰色不就是不需要的意思吗?就删了.....
      

  4.   

    看看你RollPagerView  包导进去没如果有的话,试着把下面的代码放到onresume重载方法里面
    mRollViewPager = findViewById(R.id.roll_view_pager);        //设置播放时间间隔
            mRollViewPager.setPlayDelay(1000);
            //设置透明度
            mRollViewPager.setAnimationDurtion(500);
            //设置适配器
            mRollViewPager.setAdapter(new TestNormalAdapter());        //设置指示器(顺序依次)
            //自定义指示器图片
            //设置圆点指示器颜色
            //设置文字指示器
            //隐藏指示器
            mRollViewPager.setHintView(new IconHintView(this, R.drawable.point_focus, R.drawable.point_normal));
            mRollViewPager.setHintView(new ColorPointHintView(this, Color.YELLOW, Color.WHITE));
            mRollViewPager.setHintView(new TextHintView(this));
            mRollViewPager.setHintView(null);
      

  5.   

    emmmmmm,不行呢,还是一样的错
      

  6.   

     mRollViewPager = findViewById(R.id.roll_view_pager);这错了应该是 mRollViewPager =(RollPagerView) findViewById(R.id.roll_view_pager);
      

  7.   

    还有个可能就是你没有在AMF文件里注册activity
      

  8.   

    改成 mRollViewPager =(RollPagerView) findViewById(R.id.roll_view_pager);   看看报什么错误
      

  9.   


    貌似还是一样....我把全部错贴出来吧...adb -d shell sh /data/data/me.piebridge.brevent/brevent.sh
    Error:The SDK Build Tools revision (24.0.1) is too low for project ':autoScrollViewPager'. Minimum required is 25.0.0
    <a href="install.build.tools">Install Build Tools 25.0.0, update version in build file and sync project</a><br><a href="openFile:E:/androiod/AutoScrollViewPager-master/autoScrollViewPager/build.gradle">Open File</a>Error:(7) No resource identifier found for attribute 'autoScrollEnable' in package 'io.github.ryanhoo.music' //MediaPlayer播放结束监听事件        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {            @Override            public void onCompletion(MediaPlayer mp) {                play();            }        });
    <?xml version="1.0" encoding="utf-8"?>  
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
                   xmlns:app="http://schemas.android.com/apk/res-auto"  
                   xmlns:tools="http://schemas.android.com/tools"  
                   android:layout_width="match_parent"  
                   android:layout_height="match_parent"  
                   tools:context=".MainActivity">   
       <com.jude.rollviewpager.RollPagerView  
    android:id="@+id/roll_view_pager"  
    android:layout_width="match_parent"         
    android:layout_height="180dp"  
    app:rollviewpager_play_delay="3000"/>  
    </RelativeLayout> 03-01 05:53:13.321 7260-7260/io.github.ryanhoo.music E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: io.github.ryanhoo.music, PID: 7260
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{io.github.ryanhoo.music/io.github.ryanhoo.music.ui.settings.MainImgActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:144)
    java.lang.RuntimeException: Unable to start activity ComponentInfo{io.github.ryanhoo.music/io.github.ryanhoo.music.ui.settings.MainImgActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference 9953-9953/io.github.ryanhoo.music E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: io.github.ryanhoo.music, PID: 9953
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{io.github.ryanhoo.music/io.github.ryanhoo.music.ui.settings.MainImgActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:144)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:135)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5221)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
                                                                            Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
                                                                               at io.github.ryanhoo.music.ui.settings.MainImgActivity.onCreate(MainImgActivity.java:36)
                                                                               at android.app.Activity.performCreate(Activity.java:5937)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:135) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5221) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
      

  10.   


    emmmm,上一个回复拷多了....
    9953-9953/io.github.ryanhoo.music E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: io.github.ryanhoo.music, PID: 9953
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{io.github.ryanhoo.music/io.github.ryanhoo.music.ui.settings.MainImgActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:144)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:135)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5221)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
                                                                            Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
                                                                               at io.github.ryanhoo.music.ui.settings.MainImgActivity.onCreate(MainImgActivity.java:36)
                                                                               at android.app.Activity.performCreate(Activity.java:5937)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                                                                               at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:135) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5221) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
      

  11.   

    RollPagerView这个是第三方的 你有没有导入相应的jar包
      

  12.   

    参考下这个例子
    http://blog.csdn.net/double2hao/article/details/51328824
      

  13.   

    再注意你这个块错误提示Error:The SDK Build Tools revision (24.0.1) is too low for project ':autoScrollViewPager'. Minimum required is 25.0.0
    <a href="install.build.tools">Install Build Tools 25.0.0, update version in build file and sync project</a><br><a href="openFile:E:/androiod/AutoScrollViewPager-master/autoScrollViewPager/build.gradle">Open File</a>
      

  14.   


    导了,build.gradle
    活动单独做个项目没问题。就是放在另一个项目上跳转就报空指针,活动也注册了........
      

  15.   

                                                     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jude.rollviewpager.RollPagerView.setPlayDelay(int)' on a null object reference
                                                                               at io.github.ryanhoo.music.ui.settings.MainImgActivity.onCreate(MainImgActivity.java:36)activity36行报错,你看看这是什么代码
      

  16.   

    35.        //设置播放时间间隔
    36 .       mRollViewPager.setPlayDelay(1000);
      

  17.   

    35.        //设置播放时间间隔
    36 .       mRollViewPager.setPlayDelay(1000);是不是三方库导入错误,或者有的依赖没有添加,哟恩有可能是库导入多了,最新的版本把你的正确版本库覆盖了,我之前写广告的时候有个类似的情况
      

  18.   

    检查下布局文件,看看mRollViewPager到底有没有。异常跑出的原因是这个view是null
      

  19.   

    35.        //设置播放时间间隔
    36 .       mRollViewPager.setPlayDelay(1000);是不是三方库导入错误,或者有的依赖没有添加,哟恩有可能是库导入多了,最新的版本把你的正确版本库覆盖了,我之前写广告的时候有个类似的情况照着别人的在build.graadle里导的,活动单独做一个项目可以运行,把这活动放在另一个项目就不行了.....包导了,活动注册了,这个活动又不需要上个活动传值......
      

  20.   


    http://download.csdn.net/detail/double2hao/9511532
    完全按这里来弄的,单独做一个项目是没问题的,把这活动及相应布局文件弄到另一个项目不就行......mRollViewPager有的啊...
      

  21.   

    35.        //设置播放时间间隔
    36 .       mRollViewPager.setPlayDelay(1000);是不是三方库导入错误,或者有的依赖没有添加,哟恩有可能是库导入多了,最新的版本把你的正确版本库覆盖了,我之前写广告的时候有个类似的情况照着别人的在build.graadle里导的,活动单独做一个项目可以运行,把这活动放在另一个项目就不行了.....包导了,活动注册了,这个活动又不需要上个活动传值......

    是不需要,我写广告的那个也不需要,但是就是因为库的原因,一个变量获取为0,崩溃了,找了好几个小时才找到是库的原因,有时候demo看多了,库就乱了
      

  22.   

    35.        //设置播放时间间隔
    36 .       mRollViewPager.setPlayDelay(1000);是不是三方库导入错误,或者有的依赖没有添加,哟恩有可能是库导入多了,最新的版本把你的正确版本库覆盖了,我之前写广告的时候有个类似的情况照着别人的在build.graadle里导的,活动单独做一个项目可以运行,把这活动放在另一个项目就不行了.....包导了,活动注册了,这个活动又不需要上个活动传值......

    是不需要,我写广告的那个也不需要,但是就是因为库的原因,一个变量获取为0,崩溃了,找了好几个小时才找到是库的原因,有时候demo看多了,库就乱了
    是有这可能,好吧- -,现在换另一个项目做了,做来学习的,谢谢您的回答
      

  23.   


    http://download.csdn.net/detail/double2hao/9511532
    完全按这里来弄的,单独做一个项目是没问题的,把这活动及相应布局文件弄到另一个项目不就行......mRollViewPager有的啊...
    抱歉,我看不了你发的那个连接,而且我觉得问题应该不会严重到需要去看那个连接。
    你有没有打印下日志看看到底有没有mRollViewPager。
    因为异常就是这里抛出的。而且,我看你findview的时候,根本没有强转类型,代码里面没有给你报错么?
      

  24.   


    http://download.csdn.net/detail/double2hao/9511532
    完全按这里来弄的,单独做一个项目是没问题的,把这活动及相应布局文件弄到另一个项目不就行......mRollViewPager有的啊...
    抱歉,我看不了你发的那个连接,而且我觉得问题应该不会严重到需要去看那个连接。
    你有没有打印下日志看看到底有没有mRollViewPager。
    因为异常就是这里抛出的。而且,我看你findview的时候,根本没有强转类型,代码里面没有给你报错么?重点是查看下那这个view的id,看看是不是还有其他的view里面有组件和这个mRollViewPager的id一样
      

  25.   


    http://download.csdn.net/detail/double2hao/9511532
    完全按这里来弄的,单独做一个项目是没问题的,把这活动及相应布局文件弄到另一个项目不就行......mRollViewPager有的啊...
    抱歉,我看不了你发的那个连接,而且我觉得问题应该不会严重到需要去看那个连接。
    你有没有打印下日志看看到底有没有mRollViewPager。
    因为异常就是这里抛出的。而且,我看你findview的时候,根本没有强转类型,代码里面没有给你报错么?重点是查看下那这个view的id,看看是不是还有其他的view里面有组件和这个mRollViewPager的id一样http://blog.csdn.net/double2hao/article/details/51328824  发错了....
    不知道怎么看id呢........
      

  26.   

    debug一下看看你的mRollViewPager拿到的是什么
      

  27.   


    http://download.csdn.net/detail/double2hao/9511532
    完全按这里来弄的,单独做一个项目是没问题的,把这活动及相应布局文件弄到另一个项目不就行......mRollViewPager有的啊...
    抱歉,我看不了你发的那个连接,而且我觉得问题应该不会严重到需要去看那个连接。
    你有没有打印下日志看看到底有没有mRollViewPager。
    因为异常就是这里抛出的。而且,我看你findview的时候,根本没有强转类型,代码里面没有给你报错么?重点是查看下那这个view的id,看看是不是还有其他的view里面有组件和这个mRollViewPager的id一样http://blog.csdn.net/double2hao/article/details/51328824  发错了....
    不知道怎么看id呢........
    你把MainActivity的布局文件贴出来看看。或者你自己找找,mRollViewPager的id是不是包含在activity_main.xml中。
    id怎么看?findviewById,你用的那个就是它的id。
    你顺便Log.i("MainActivity","mRollViewPager = "+mRollViewPager);
    把代码写在findviewbyid的下面,看看打印出来的mRollViewPager是不是null的。
      

  28.   

    http://download.csdn.net/detail/double2hao/9511532
    完全按这里来弄的,单独做一个项目是没问题的,把这活动及相应布局文件弄到另一个项目不就行......mRollViewPager有的啊...
    抱歉,我看不了你发的那个连接,而且我觉得问题应该不会严重到需要去看那个连接。
    你有没有打印下日志看看到底有没有mRollViewPager。
    因为异常就是这里抛出的。而且,我看你findview的时候,根本没有强转类型,代码里面没有给你报错么?重点是查看下那这个view的id,看看是不是还有其他的view里面有组件和这个mRollViewPager的id一样http://blog.csdn.net/double2hao/article/details/51328824  发错了....
    不知道怎么看id呢........
    你把MainActivity的布局文件贴出来看看。或者你自己找找,mRollViewPager的id是不是包含在activity_main.xml中。
    id怎么看?findviewById,你用的那个就是它的id。
    你顺便Log.i("MainActivity","mRollViewPager = "+mRollViewPager);
    把代码写在findviewbyid的下面,看看打印出来的mRollViewPager是不是null的。谢谢各位的回答,因为这个项目有些功能没实现我换别的做了,别的跳转也有问题但没报空指针,从头一步步弄就弄出来了,各位提供的方法我之后再去测试,不行也没事,毕竟找到别的项目了。再次感谢各位!第一次在这里发帖就有那么多热心人回答。
      

  29.   

    看下xml文件  是否存在roll_view_pager这个id
      

  30.   

    我能问你个问题吗??直接问吧  
    我写的沉浸式状态栏,最开始是好用的,后来突然失效了,状态栏变成黑灰色,还挡住了一半toolbar的标题栏,我是用SystemBarTintManager写的,找了好久也找不到原因
      

  31.   

    可以,之前是有转型的,因为显示为灰色(Android studio主题),灰色不就是不需要的意思吗?就删了.....
    灰色是编译期间没用到,java是支持动态加载的,所以有些代码很可能运行的时候会用到,没有看代码的问题,单指这句灰色就是不需要...