Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在带有片段的多模块项目中使用ButterKnife时出现NullPointerException_Android_Module_Nullpointerexception_Fragment_Butterknife - Fatal编程技术网

Android 在带有片段的多模块项目中使用ButterKnife时出现NullPointerException

Android 在带有片段的多模块项目中使用ButterKnife时出现NullPointerException,android,module,nullpointerexception,fragment,butterknife,Android,Module,Nullpointerexception,Fragment,Butterknife,我得到了java.lang.NullPointerException:当应用程序在后台运行几分钟后恢复时,尝试在空对象引用上调用虚拟方法'void android.view.view.setVisibility(int) 我的根构建脚本: dependencies { classpath 'com.android.tools.build:gradle:2.3.0' classpath 'net.researchgate:gradle-release:2.4.0' clas

我得到了
java.lang.NullPointerException:当应用程序在后台运行几分钟后恢复时,尝试在空对象引用上调用虚拟方法'void android.view.view.setVisibility(int)

我的根构建脚本:

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0'
    classpath 'net.researchgate:gradle-release:2.4.0'
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
}
我的库模块gradle有:

apply plugin: 'com.jakewharton.butterknife'

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.jakewharton:butterknife:8.5.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
  testCompile 'junit:junit:4.12'
}
在我正在恢复的片段中,正确地绑定了视图, 但在恢复应用程序时,绑定不知何故丢失了

@BindView(R2.id.recyclerView) RecyclerView recyclerView;
@BindView(R2.id.viewPager) ViewPager viewPager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    View view = inflater.inflate(getFragmentLayoutId(), container, false);
    unbinder = ButterKnife.bind(this, view);

    return view;
}

@Override
public void onDestroyView()
{
    super.onDestroyView();

    if (unbinder != null)
    {
        unbinder.unbind();
    }
}
我没有使用proguard,在某些情况下,在viewPager中更改页面时也会引发异常。 viewPager和recyclerView有时都为空

异常在此处引发:

private ViewPager.OnPageChangeListener getOnPageChangeListener()
{
    return new ViewPager.OnPageChangeListener()
    {
        public void onPageScrollStateChanged(int i) {}
        public void onPageScrolled(int i, float v, int i1) {}
        public void onPageSelected(int position)
        {
            if (position != list.size())
            {
                if (isSelectedActive())
                {
                    animateSelectedToActive();
                }
                else
                {
                    animateSelectedToInactive();
                }
            }
        }
    };
}

private void animateSelectedToActive()
{
    // -- Exception thrown here ! --
    recyclerView.setVisibility(View.VISIBLE);
    recyclerView.animate().alpha(0f)
            .setDuration(370)
            .start();
}

我是否错过了一些东西,我遵循了如何逐行实现它?

这可能是因为
片段
依赖于
活动上下文
,而没有自己的
上下文
。所以你必须做
ButterKnife.bind(这个,视图)活动
中的code>,它启动您的
片段
。希望对您有所帮助:)

您是否尝试使用默认的bindview aka R而不是库视图?

在您的代码中,该异常在哪里引发?请注明行。我已用更多信息更新了问题,在其他地方也引发了异常,但此异常更为频繁。:)根据,巴特刀。绑定(此,视图);必须使用:/