切换到特定片段会产生奇怪的 java.lang.NullPointerException

2024-02-09

这是我目前面临的问题。我最近从带有 ADT 插件的 Eclipse 切换到 Android Studio,并且 Android Studio 出现了一个我在 Eclipse 上从未遇到过的错误。

当我切换到名为“LineFragment”的特定片段时,出现以下错误:

java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim' on a null object reference
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:708)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
        at android.support.v4.view.ViewPager$3.run(ViewPager.java:249)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:549)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        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)

这似乎与片段为空有关。我在互联网上搜索过,但只有极少数人遇到过类似的事情。

这是我的片段的代码(它像所有 3 个片段一样扩展了 android.support.v4.app.Fragment)

public class LineFragment extends Fragment{

private View v;
private ListView list;
private LineList listAdapter;
private Home home;  // Current activity

public static LineFragment  newInstance(String chaine) {
    LineFragment  fragment = new LineFragment ();
    Bundle args = new Bundle();
    args.putString("LIGNE", chaine);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onActivityCreated(Bundle savedState) {
    super.onActivityCreated(savedState);
    registerForContextMenu(list);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.fragment_ligne, container, false); 
    home = (Home) this.getActivity();
    initInterface();
    attachReactions();
    setHasOptionsMenu(true);
    return v;
}

@Override
 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    inflater.inflate(R.menu.line_menu, menu);

  MenuItem searchMenuItem = menu.findItem(R.id.action_search);

  SearchManager searchManager = (SearchManager) getActivity().getSystemService( Context.SEARCH_SERVICE );
  SearchView search = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
  SearchViewCompat.setInputType(search, InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS);


search.setSearchableInfo(searchManager.getSearchableInfo(home.getComponentName()));
//search.setSubmitButtonEnabled(true);


int id = search.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
TextView textView = (TextView) search.findViewById(id);
textView.setTextColor(Color.WHITE);
textView.setHintTextColor(Color.WHITE);

search.setOnQueryTextListener(new GreenOnQueryTextListener(list));

super.onCreateOptionsMenu(menu, inflater);
 }
@Override
public void onResume() {
    super.onResume();
    Log.d("OnResume()", "Ligne");
}

@Override
public void setUserVisibleHint(boolean visible){
    super.setUserVisibleHint(visible);
    if (visible && isResumed()){
        //Only manually call onResume if fragment is already visible
        //Otherwise allow natural fragment lifecycle to call onResume
        onResume();
    }
}

/**
 * Initializes the graphical interface of the fragment.
 */
private void initInterface(){
    list = (ListView) v.findViewById(R.id.list);
    list.setTextFilterEnabled(true);
}

/**
 * Sets the reactions of the control elements
 */
private void attachReactions(){
    ArrayList<Ligne> lignes = new ArrayList<Ligne>(Globale.engine.getReseau().getLignes().values());
    listAdapter = new LineList(getActivity(), lignes);
    list.setAdapter(listAdapter);
    list.setOnItemClickListener(new LineClickListener(home));
}

这是我的 PagerAdapter :

public class KiceoFragmentPagerAdapter extends FragmentPagerAdapter{

private final int PAGE_COUNT = 3;

    public KiceoFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }


    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public Fragment getItem(int position) {     

        switch (position) {
        case 0:
            // Top Rated fragment activity
            return new LineFragment();
        case 1:
            // Games fragment activity
            return new StopFragment();
        case 2:
            // Movies fragment activity
            return new CustomMapFragment();
        }

        return new LineFragment();
    }
}

有谁知道这是从哪里来的?它真的和Android Studio有关系吗?谢谢

我尝试切换为支持 V13 片段,但它没有改变任何东西。


只需检查是否getItem()正在返回null for a Fragment。如果是这样设置默认值Fragment!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

切换到特定片段会产生奇怪的 java.lang.NullPointerException 的相关文章

  • 当参数具有默认值时,为什么无法使用导航组件将参数传递给片段?

    我正在使用导航组件 但我不明白为什么如果定义了参数 则将参数传递给下面的方法时会出现错误 我正在使用 SafeArgs 只有当我为此参数定义默认值时才会出现此错误 有人可以解释一下为什么会发生这种情况以及如何解决它吗 这是导航图的部分代码
  • 如何覆盖日期选择器的高度和宽度以填充父布局

    我有一个活动包含一个日期选择器 我想设置DatePicker适合屏幕 我试过这个答案 https stackoverflow com questions 6674667 how to customize date pickers width
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 版本 5 上带有 getBackground().setAlpha 的按钮 - 棒棒糖无法正常工作

    我有这段代码 适用于自 API 14 以来的每个版本 但在 Android 5 0 Lollipop 上无法正常工作 以下是我希望按钮出现的方式 单击按钮1 buttonArrivals getBackground setAlpha 180
  • 配置 Eclipse/EGit 来跟踪上游存储库

    我正在使用 EGit 如新的 Eclipse 4 2 Juno 版本中提供的 我在 GitHub 上有一个存储库 是从另一个上游存储库分叉的 当我从 Github 上的存储库在 Eclipse 中创建项目时 它正确设置origin指向 Gi
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • 从 Eclipse Java 编辑器中获取选定的文本

    我正在开发一个 Eclipse 插件 按下按钮后 该插件会在 Java 编辑器中获取选定的文本 并将其放入出现的文本框中 我的代码如下所示 我从这里得到它 http dev eclipse org newslists news eclips
  • Android:如何使视图增长以填充可用空间?

    这看起来很简单 但我不知道该怎么做 我有一个带有 EditText 和两个 ImageButtons 的水平布局 我希望 ImageButtons 具有固定大小 并且 EditText 占据布局中的剩余空间 如何才能做到这一点
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • 按名称查找视图

    是否可以通过名称而不是 id 来查找视图 findViewById R id someView 但我想做这样的事情 findViewByName someView 在处理 xml 时 您必须通过标识符查找视图 但是您可以使用以下方式查找标识
  • 是否可以使用 Eclipse 的正则表达式搜索和替换转换为小写?

    我已经尝试过 L 但它似乎不是其语法的一部分 并且它的帮助没有提及任何可用的转换 我知道我可以并且知道如何从命令行执行此操作 但是 是否可以使用 Eclipse 的正则表达式搜索和替换进行大小写转换 您可以分两步完成 首先插入小写字母 那么
  • Java 编码风格、局部变量与重复方法调用

    我更喜欢使用局部变量而不是多次调用同一方法 I prefer this Vehicle vehicle person getVehicle if vehicle instanceof Car Car car Car vehicle car
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 通过 HttpURLConnection 发送 UTF-8 字符失败

    我已经花了半个星期天的时间来解决这个问题 现在我需要帮助 我想使用 Java HttpURLConnection 将包含特殊字符 UTF 8 编码的字符串发送到服务器 字符的正确编码失败 Example strToSend strUrlEn
  • Laravel 全文搜索

    我正在尝试对数据库实施全文搜索查询 这是我的客户发给我的规范 The free text search limits the result of the data table to records with a matching first
  • C# 中的线程安全属性

    我正在尝试在 C 中创建线程安全属性 并且我想确保我处于正确的路径上 这是我所做的 private readonly object AvgBuyPriceLocker new object private double AvgBuyPric
  • JavaFX 中的动态/即时调整大小

    如何创建一个 立即 动态调整大小的 JavaFX 应用程序 现在 我已经编写了一个简单的应用程序 可以动态调整大小 但布局更改只有在拖动鼠标按钮后才会显示 我希望在此按钮释放之前立即看到结果 布局更改 我假设这是通过将正确的值 控件与反向绑
  • 如何在java中转换为CRTP?

    我有一个非常简单的案例 我做了一些基本的通用分配 final Detail detail field getAnnotation Detail class final String example detail example final
  • OLAP 处理时出错

    我是 OLAP 新手 并且弄清楚了如何制作立方体并处理它 然而 当我玩得太多时 我最终遇到了这个错误 OLAP存储引擎中的错误 找不到属性键 表 dbo v MYEntities 列 uniqueId 值 2548 OLAP 中的错误 存储
  • 如何根据行的“属性”将数据帧行乘以数组?

    我有一个大熊猫数据框 DF 它几乎占用了我所有的 RAM 它的索引始终是以下之一 c1 c2 c3 0 1 2 n i c1 1 8 15 c2 2 9 16 c1 3 10 17 c3 4 11 18 c2 5 12 19 c1 6 13
  • 为什么 Numpy 数组中的第二个维度为空?

    为什么输出在这里 array np arange 3 array shape is 3 and not 1 3 缺失的维度意味着什么或等于什么 万一出现混乱 3 并不意味着缺少维度 逗号是单元素元组的标准 Python 表示法的一部分 形状
  • 我可以知道 char 指针变量指向的 char-array-size 吗? [复制]

    这个问题在这里已经有答案了 我必须知道 char 指针变量指向的数组大小 但你知道 sizeof 操作不起作用 char a 5 char b a int c sizeof b printf d sizeof b 8 64 bit cpu
  • != 和 !== 之间的区别[重复]

    这个问题在这里已经有答案了 就我而言 我应该使用 如下 还是 更合适 有什么区别 private function authenticateApi ip sentKey mediaServerIp 62 80 198 226 mediaSe
  • 从数组中的 COUNT 中排除空值

    如何从数组的计数中排除空值 因为计数中始终包含空值 count array filter array function x return is null x
  • 在 C# 中模拟可变参数模板

    是否有一种众所周知的方法来模拟 C 中的可变参数模板功能 例如 我想编写一个方法 该方法采用带有任意参数集的 lambda 这是我想要的伪代码 void MyMethod
  • 如何创建自定义 UIButton(带图像)但仍使用 setTitle?

    我尝试使用 UIButtonTypeCustom 创建 UIButton 然后使用以下方法调整它的外观 sendButton setImage UIImage imageNamed sendButtonOff png forState UI
  • 批处理文件最大化当前窗口

    我构建了一个批处理程序 目前正在对其进行调整 以使其更具可读性 用户友好性 我想要我的 bat文件自动设置为最大化 bat文件本身 我读到START MAX在线 但这只是打开命令提示符窗口的一个新实例 我不想有两个 bat文件只是为了最大化
  • Typescript:如何设置方法返回值=>子类

    我有一个带有两个子类的父类 abstract class Point public readonly x number public readonly y number constructor x number y number this
  • 多对多关联的 POST 请求

    我有两个具有多对多关联的实体 class User extends BaseUser and class Calendar var integer ORM Column name id type integer ORM Id ORM Gen
  • 从ggplot2中的误差条中删除端点

    我的目标是在 R 中创建箱线图 不一定要使用 ggplot2 但这就是我现在使用的 其风格与我在某处找到的示例相似 减去文本 这是我到目前为止的代码 dat lt read table file https www dropbox com
  • 如何从 HttpSessionListener 访问 JSF 应用程序范围的托管 bean? [复制]

    这个问题在这里已经有答案了 我正在运行一个JSF应用程序并声明了一些应用程序范围的支持 bean 在common beans xml或使用 ManagedBean and ApplicationScoped注释 我如何从内部访问这些bean
  • 扩展 Selenium:如何调用命令?

    我读到用户扩展 http seleniumhq org docs 02 selenium ide html user extensions and 扩展硒 http release seleniumhq org selenium core
  • 切换到特定片段会产生奇怪的 java.lang.NullPointerException

    这是我目前面临的问题 我最近从带有 ADT 插件的 Eclipse 切换到 Android Studio 并且 Android Studio 出现了一个我在 Eclipse 上从未遇到过的错误 当我切换到名为 LineFragment 的特