【问题标题】:Android Fragment no view found for ID?Android Fragment 没有找到 ID 的视图?
【发布时间】:2021-10-22 15:14:27
【问题描述】:

我有一个要添加到视图中的片段。

FragmentManager fragMgr=getSupportFragmentManager();
feed_parser_activity content = (feed_parser_activity)fragMgr
                                    .findFragmentById(R.id.feedContentContainer);
FragmentTransaction xaction=fragMgr.beginTransaction();

if (content == null || content.isRemoving()) {
    content=new feed_parser_activity(item.getLink().toString());
    xaction
        .add(R.id.feedContentContainer, content)
        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
        .addToBackStack(null)
        .commit();
    Log.e("Abstract", "DONE");
}

执行此代码时,我在调试中收到以下错误..

java.lang.IllegalArgumentException: No view found for id 0x7f080011 
   for fragment feed_parser_activity{41882f50 #2 id=0x7f080011}

feed_parser_activity是一个在xml中设置为Fragment布局的Fragment。
我正在使用 FragmentActivity 来托管包含 feed_parser_layout 的片段布局。
我在上面正确编码了吗?

【问题讨论】:

  • 你能包含 XML 吗?
  • 在 Activity 中调用 setContentView 之前进行片段事务时,可能会出现相同的错误
  • 仅当使用 ViewPager->Fragment->RecyclerView->Fragment with childFragmentManager 时,在 Android 5 和 Android 6 中面临同样的问题

标签: android android-fragments illegalargumentexception


【解决方案1】:

我也遇到了这个问题,直到我意识到我在 FragmentActivity 的 onCreate() 方法的 setContentView() 中指定了错误的布局。

传递给 FragmentTransaction.add() 的 id,在您的例子中是 R.id.feedContentContainer,必须是 setContentView() 中指定的布局的子项。

您没有向我们展示您的onCreate() 方法,所以这可能是同一个问题。

【讨论】:

  • setContentView 中指定的布局的子项是什么意思?怎么生孩子?
  • 如果在 XML 的父视图内声明一个视图,则该视图是另一个视图的子视图。 IE。 TextView 位于RelativeLayout 内是RelativeLayout 的孩子。
  • @howettl:我知道这是个老帖子。但我无法用你的回答解决这个问题。这是一个问题:stackoverflow.com/questions/25844394/… - 你能帮我解决这个问题吗?谢谢!
  • 发生在我身上。 CTRL+C CTRL+V 的缺点。
  • 你是一个救生员。我错误地删除了主要片段中的 include 代码,然后我被困了 2 个小时试图解决这个问题。
【解决方案2】:

有时也会发生此错误嵌套片段并使用 getSupportFragmentManager() 而不是 getChildFragmentManager() 添加它们。

【讨论】:

  • 我的是相反的。试图通过调用 getChildFragmentManager() 添加到主片段容器。指出这一点为我解决了。谢谢+1
  • @Malachiasz:你能看看这个关于 ViewPager 的问题吗?谢谢stackoverflow.com/questions/27937250/…
  • 这正是我的问题,谢谢。奇怪的是,这只发生在横向调用 .show() 时。用它来替换主要片段效果很好。
  • 这正是我的问题,非常感谢!它只发生在一些慢速设备上,所以很难理解到底发生了什么。
  • 多次提出这个问题后,我觉得没有其他人遇到过我的问题,只需要向下滚动一下。如果他们能让错误代码更具体地说明可能是这种情况,那就太好了。
【解决方案3】:

解决方案是使用getChildFragmentManager()

而不是getFragmentManager()

从片段调用时。如果您从活动中调用该方法,请使用getFragmentManager()

这将解决问题。

【讨论】:

  • @surfer190 使用getSupportFragmentManager() 代替。
  • 更改为 getChildFragmentManager() 并且这有效!!
  • 在我的例子中,我在底部工作表片段中使用 viewpager 使用片段导航。您的解决方案非常有效!非常感谢兄弟。
  • 有同样的问题,这为我解决了! getChildFragmentManager() 而不是 getActivity().getFragmentManager() 一旦我想到它就有意义了:) TY!
  • 有用!我在 BottomSheet 中使用它意味着我在底部工作表中添加片段。
【解决方案4】:

我遇到的另一种情况。 如果您使用嵌套片段,请在片段中说一个 ViewPager,它的页面也是片段。

当您在内部片段(ViewPager 的页面)中进行片段事务时,您将需要

FragmentManager fragmentManager = getActivity().getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

getActivity() 是这里的关键。 ...

【讨论】:

  • 是的...对我来说,除此之外,所有其他实施都很好。我直接尝试访问这样的代码:FragmentTransaction transaction =getSupportFragmentManager().beginTransaction();然后我像你提到的那样分别使用 getActivity() 得到了 fragmentmanager。它很好用
【解决方案5】:

我遇到了这个问题(在代码中构建我的 UI 时),它是由我的 ViewPager(显示 Fragments)没有设置 ID 引起的,所以我简单地使用了 pager.setID(id) 然后它起作用了。

This page 帮我解决了这个问题。

【讨论】:

  • 我在使用 viewPager 时遇到了同样的问题。在执行事务之前使用 viewPager.setCurrentItem(n) 修复了相同的错误。也许对某人有用。
  • 在我的例子中是在类似的方向,但问题是我在 .setID 中使用了一个负值。使用正整数解决了这个问题。
【解决方案6】:

在我的例子中,我试图显示一个包含寻呼机的 DialogFragment,当 FragmentPagerAdapter 试图将片段添加到寻呼机时,抛出了这个异常。根据 howettl 的回答,我猜这是因为 Pager 父级不是我的 FragmentActivity 中 setContentView() 中设置的视图。

我为解决该问题所做的唯一更改是创建 FragmentPagerAdapter,传入通过调用 getChildFragmentManager() 获得的 FragmentMager,而不是像我通常那样通过调用 getFragmentManager() 获得的 FragmentMager。

    public class PagerDialog extends DialogFragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.pager_dialog, container, false);

        MyPagerAdapter pagerAdapter = new MyPagerAdapter(getChildFragmentManager());
        ViewPager pager = (ViewPager) rootView.findViewById(R.id.pager);
        pager.setAdapter(pagerAdapter);

        return rootView;
    }
}

【讨论】:

  • 无法从 DialogFragment 访问 getChildFragmentManager()
  • 无障碍。这个解决了我的问题。谢谢
  • 这挽救了我的一天。在看到这个答案之前,我试图在对话框中使用 Material Stepper 但无济于事
【解决方案7】:

如果您传递给 FragmentTransaction.replace(int ID, fragment) 的布局 ID 存在于其他正在扩充的布局中,也会发生此异常。确保布局 ID 是唯一的并且它应该有效。

【讨论】:

  • 如果 id 中缺少,编译器不会报告当前的layout 如果它不是唯一的,那么真正的问题不是 id 的唯一性,而是当前布局中 id 的遗漏。
  • 是的,检查您是否替换了当前容器中的片段。使用容器的正确 ID(我使用了另一个屏幕的 ID 并得到了异常)。
【解决方案8】:

嵌套片段

对我来说使用getChildFragmentManager()而不是getActivity().getSupportFragmentManager()解决了崩溃

java.lang.IllegalArgumentException:找不到 id 的视图

【讨论】:

  • 但是内部适配器无法导入 getchildFragmentManager 为什么
【解决方案9】:

当我遇到这个问题涉及布局 xml 时,我在另一个类似于这个的线程上读到的答案对我有用。

您的 logcat 显示“未找到 id 0x7f080011 的视图”。

打开 gen->package->R.java->id 然后寻找 id 0x7f080011

当我遇到这个问题时,这个 id 属于我的 activity_main.xml 文件中的一个 FrameLayout

FrameLayout 没有 ID(没有声明 android:id = "blablabla")。

确保所有布局中的所有组件都有 ID,尤其是 logcat 中引用的组件。

【讨论】:

  • 好的。在带有 LinuxOS 的 Android Studio 中,它位于:/home/bob/AndroidStudioWorkspace/HelloWorld/app/build/generated/source/r/release/android/support/v7/appcompat。
【解决方案10】:

当我从 com.android.support:support-v4:21.0.0 升级到 com.android.support:support-v4:22.1.1 时出现此错误。

我不得不改变我的布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container_frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</FrameLayout> 

对此:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/container_frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>

</FrameLayout> 

所以布局必须有孩子的看法。我假设他们在新图书馆中强制执行此操作。

【讨论】:

    【解决方案11】:

    我知道这已经针对一种情况得到了回答,但我的问题略有不同,我想我会分享以防其他人站在我的立场上。

    我在onCreate() 内进行交易,但此时视图树还没有膨胀,所以你会得到同样的错误。将交易代码放入onResume() 使一切运行良好。

    因此,只需确保您的事务代码在视图树膨胀后运行!

    【讨论】:

    • 嗯......在我的例子中,这样的代码是在 onCreate 还是 onResume 中没有区别
    • @IgorGanapolsky 在我的案例中也是如此,通过片段的onAttach 的回调解决了这个问题。看我的answer
    • 这正是我的问题。调用另一个类来刷新视图状态是在尚未膨胀的布局上执行片段事务。在 onResume() 中调用它解决了这个问题。
    • onResume(), 确保发生任何使用 FragmentManager 的尝试 super.onResume().
    【解决方案12】:

    在 Recycler View 中使用 Viewpager 时,我遇到了一个讨厌的错误。 我在特殊情况下遇到以下错误。 我开始了一个片段,它有一个带有 Viewpager 的 RecyclerView(使用 FragmentStatePagerAdapter)。它运行良好,直到我在 RecyclerView 中单击 Cell 切换到不同的片段,然后使用手机的硬件后退按钮导航回来,应用程序崩溃了。

    有趣的是,我在同一个 RecyclerView 中有两个 Viewpager,并且都在大约 5 个单元格之外(其他在屏幕上不可见,它已关闭)。所以最初我只是将解决方案应用于第一个 Viewpager 并保留另一个(使用片段的 Viewpager)。

    当第一个视图寻呼机可见时,向后导航工作正常。现在,当我向下滚动到第二个然后更改片段并返回时,它崩溃了(第一个发生了同样的事情)。所以我不得不改变这两个 Viewpager。

    无论如何,请阅读以下内容以找到可行的解决方案。 崩溃错误如下:

    java.lang.IllegalArgumentException: No view found for id 0x7f0c0098 (com.kk:id/pagerDetailAndTips) for fragment ProductDetailsAndTipsFragment{189bcbce #0 id=0x7f0c0098}
    

    花了几个小时调试它。阅读这篇完整的 Thread 帖子,直到底部应用所有解决方案,包括确保我正在通过 childFragmentManager。

    没有任何效果。

    最后,我没有使用 FragmentStatePagerAdapter ,而是扩展了 PagerAdapter 并在 Viewpager 中使用了它而不使用片段。我相信有些地方存在嵌套片段的 BUG。无论如何,我们有选择。读 ...

    以下链接非常有帮助:

    Viewpager Without Fragments

    链接可能会失效,所以我在下面发布我实施的解决方案:

    public class ScreenSlidePagerAdapter extends PagerAdapter {
    private static final String TAG = "ScreenSlidePager";
    ProductDetails productDetails;
    ImageView imgProductImage;
    ArrayList<Imagelist> imagelists;
    Context mContext;
    
    // Constructor
    public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) {
        //super(fm);
        this.mContext = mContext;
        this.productDetails = productDetails;
    }
    
    // Here is where you inflate your View and instantiate each View and set their values
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        LayoutInflater inflater = LayoutInflater.from(mContext);
        ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false);
    
        imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage);
        String url = null;
        if (imagelists != null) {
            url = imagelists.get(position).getImage();
        }
    
        // This is UniversalImageLoader Image downloader method to download and set Image onto Imageview
        ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options);
    
        // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter
        container.addView(layout);
        return layout;
    }
    
    // Write as it is. I don't know much about it
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
        /*super.destroyItem(container, position, object);*/
    }
    
    // Get the count
    @Override
    public int getCount() {
        int size = 0;
    
        if (productDetails != null) {
            imagelists =  productDetails.getImagelist();
            if (imagelists != null) {
                size = imagelists.size();
            }
        }
        Log.d(TAG,"Adapter Size = "+size);
        return size;
    }
    
    // Write as it is. I don't know much about it
    @Override
    public boolean isViewFromObject(View view, Object object) {
    
        return view == object;
    }
    

    }

    希望这有帮助!

    【讨论】:

    • 是的,这个解决方案有效,但如果我需要使用自己的生命周期和变量进行困难的构造,而不仅仅是视图怎么办?它将与带有播放和静音按钮的 videoViews 和 imageViews 一起使用。对我的案子没有帮助吗?
    • 我相信这是原因:stackoverflow.com/a/27966053/1377819
    【解决方案13】:

    以防万一有人犯了和我一样的愚蠢错误;检查您是否没有在某处覆盖活动内容(即寻找对 setContentView 的额外调用)

    在我的例子中,由于粗心的复制和粘贴,我在我的片段中使用了 DataBindingUtil.setContentView,而不是 DataBindingUtil.inflate,这搞乱了活动的状态。

    【讨论】:

    • 我们怎么会犯同样的复制和粘贴的愚蠢错误??那正是我的问题。谢谢
    【解决方案14】:

    我有同样的问题,但我的问题发生在方向改变上。其他解决方案均无效。所以事实证明,在根据屏幕尺寸进行两个或一个窗格布局时,我忘记从片段中删除 setRetainInstance(true);

    【讨论】:

    • 如果您处于嵌套片段中,请将 setRetainInstance(true) 设为 false,这将修复错误。
    【解决方案15】:

    我的错误在FragamentTransaction

    我这样做是 t.replace(R.layout.mylayout); 而不是 t.replace(R.id.mylayout);

    区别在于一个是布局,另一个是对layout(id)的引用

    【讨论】:

      【解决方案16】:

      当您从另一个片段中的片段调用时会发生这种情况。

      使用 :

      getActivity().getSupportFragmentManager().beginTransaction();
      

      【讨论】:

        【解决方案17】:

        我遇到了同样的问题,让我发布我的代码以便你们都可以看到它,而不是做我做的同样的事情。

        @Override
        protected void onResume()
        {
            super.onResume();
        
            fragManager = getSupportFragmentManager();
        
            Fragment answerPad=getDefaultAnswerPad();
            setAnswerPad(answerPad);
            setContentView(R.layout.abstract_test_view);
        }
        protected void setAnswerPad(AbstractAnswerFragment pad)
        {
            fragManager.beginTransaction()
                .add(R.id.AnswerArea, pad, "AnswerArea")
                .commit();
            fragManager.executePendingTransactions();
        }
        

        请注意,我在setContentView之前设置了片段。糟糕。

        【讨论】:

        • 谢谢你!我在做同样的事情,所以我把我的setContentView 放在我的onBuildHeaders 里面
        【解决方案18】:

        该页面似乎是发布关于 Fragment IllegalArgumentException 的建议的一个很好的中心位置。这是您可以尝试的另一件事。这最终对我有用:

        我忘记了我有一个单独的横向布局文件。在我也在那里添加我的 FrameLayout 容器之后,该片段开始工作了。


        另外,如果您已经尝试过本页(以及整个 Internet)上建议的所有其他方法,并且已经拔掉头发几个小时,请考虑丢弃这些烦人的片段并返回到良好的旧标准布局。 (当我最终发现我的问题时,这实际上是我正在做的事情。)您仍然可以使用容器概念。但是,您可以使用 xml include 标记,用您在片段中使用的相同布局来填充它,而不是用片段填充它。你可以在你的主布局中做这样的事情:

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        
            <include layout="@layout/former_fragment_layout" />
        
        </FrameLayout>
        

        其中 former_fragment_layout 是您尝试在片段中使用的 xml 布局文件的名称。有关详细信息,请参阅Re-using Layouts with include

        【讨论】:

        • 这是一个很好的建议,但如果需要动态切换片段,它就不起作用了。它还降低了可重用性,因为您可以在片段中封装行为(代码)。
        • 我绝对同意。碎片要好得多。
        【解决方案19】:

        我修复了这个错误,我使用 commitNow() 替换 commit()

        mFragment.getChildFragmentManager()
          .beginTransaction()
          .replace(R.id.main_fragment_container,fragment)
          .commitNowAllowingStateLoss();
        

        commitNow 是同步方法,commit() 方法是异步方法。

        【讨论】:

        • 这终于帮助了我。非常感谢
        【解决方案20】:

        我在我的项目中使用了 View Binding,并且在膨胀 ActivityHelloWorldBinding 类之后不注意添加了 setContentView()

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            binding = ActivityHelloWorldBinding.inflate(layoutInflater)
        
            // Add this line.
            setContentView(binding.root)
        }
        

        【讨论】:

          【解决方案21】:

          在我的例子中,我在回收器视图项中有一个 SupportMapFragment(我使用的是较低的开销“liteMode”,这使得地图看起来像非交互式的,几乎像一个静态图像)。我使用的是正确的 FragmentManager,一切似乎都运行良好……只有一个小列表。一旦项目列表超出屏幕高度一点,滚动时我就开始遇到这个问题。

          事实证明,这是因为我在另一个片段内的视图中注入了一个动态 SupportMapFragment,以解决我在尝试在 XML 中静态声明它时遇到的一些问题。因此,片段占位符布局只能在视图附加到窗口(即在屏幕上可见)后替换为实际片段。所以我在 onAttachedToWindow 事件中放置了用于初始化 SupportMapFragment、执行 Fragment 替换和调用 getMapAsync() 的代码。

          我忘记做的是确保我的代码没有运行两次。 IE。在 onAttachedToWindow 事件中,在尝试创建它的新实例并进行片段替换之前检查我的动态 SupportMapFragment 是否仍然为 null。当项目离开 RecyclerView 的顶部时,它会与窗口分离,然后在您滚动回到它时重新连接,因此会多次触发此事件。

          一旦我添加了空检查,每个 RecyclerView 项目只发生一次,问题就消失了!长话短说!

          【讨论】:

            【解决方案22】:

            当您不将 &lt;include layout="@layout/your_fragment_layout"/&gt; 放入您的 app_bar_main.xml 时,也会发生此问题

            【讨论】:

              【解决方案23】:

              使用 childFragmentManager 而不是 activity!!.supportFragmentManager

              【讨论】:

                【解决方案24】:

                当我试图用onCreateView() 中的片段替换视图时遇到了这个问题。像这样:

                public class MyProjectListFrag extends Fragment {
                
                
                    private MyProjectListFragment myProjectListFragment;
                
                    @Override
                    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) {
                
                        FragmentManager mFragmentManager = getFragmentManager();
                        myProjectListFragment = new MyProjectListFragment();
                        mFragmentManager
                                .beginTransaction()
                                .replace(R.id.container_for_my_pro_list,
                                        myProjectListFragment, "myProjectListFragment")
                                .commit();
                    }
                

                它告诉我

                11-25 14:06:04.848: E/AndroidRuntime(26040): java.lang.IllegalArgumentException: No view found for id 0x7f05003f (com.example.myays:id/container_for_my_pro_list) for fragment MyProjectListFragment{41692f40 #2 id=0x7f05003f myProjectListFragment}
                

                然后我通过将替换放入onActivityCreated() 来解决这个问题。像这样:

                public class MyProjectListFrag extends Fragment {
                
                    private final static String TAG = "lch";
                
                    private MyProjectListFragment myProjectListFragment;
                
                    @Override
                    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) {
                
                        return inflater
                                .inflate(R.layout.frag_my_project_list, container, false);
                    }
                
                    @Override
                    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
                        // TODO Auto-generated method stub
                        super.onActivityCreated(savedInstanceState);
                
                        FragmentManager mFragmentManager = getFragmentManager();
                        myProjectListFragment = new MyProjectListFragment();
                        mFragmentManager
                                .beginTransaction()
                                .replace(R.id.container_for_my_pro_list,
                                        myProjectListFragment, "myProjectListFragment")
                                .commit();
                
                    }
                
                1. 您必须返回 onCreateView() 中的视图,以便稍后替换它
                2. 您可以在 fragment liftcycle 的以下函数中对该视图进行任何操作,例如onActivityCreated()

                  希望这可以帮助!

                【讨论】:

                  【解决方案25】:

                  在我的例子中,当我对同一个布局元素(片段占位符)使用不同的 id,同时将其中的几个用于不同的 Build Variants 时,抛出了这个异常。出于某种原因,当你第一次替换片段时它工作得很好,但如果你再次尝试这样做,你会得到这个异常。 因此,如果您对不同的构建变体有多个布局,请确保您使用相同的 ID。

                  【讨论】:

                    【解决方案26】:

                    我遇到了这个问题。就我而言,我忘记在我的 Xml 文件中添加 FrameLayout,添加框架布局后,我的问题就解决了。

                    <FrameLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:id="@+id/wraper"
                            android:layout_above="@id/wraper"/>
                    

                    【讨论】:

                      【解决方案27】:

                      如果您尝试用 fragmentManager 替换片段中的片段,但您不膨胀父片段这可能会导致问题。

                      基础片段.javaOnCreateView:

                      if (savedInstanceState == null) {
                                  getFragmentManager().beginTransaction()
                                          .replace(R.id.container, new DifferentFragment())
                                          .commit();
                              }
                      
                      return super.onCreateView(inflater, container, savedInstanceState);
                      

                      替换super.onCreateView(inflater, container, savedInstanceState); 为片段充气正确的布局:

                              return inflater.inflate(R.layout.base_fragment, container, false);
                      

                      【讨论】:

                        【解决方案28】:

                        在创建活动时进行片段事务时,我遇到了同样的问题。

                        核心问题是Nick has already pointed out - 视图树还没有膨胀。但他的解决方案没有用——在 onResume、onPostCreate 等中出现相同的异常。

                        解决方案是向容器片段添加回调以在准备就绪时发出信号:

                        public class MyContainerFragment extends Fragment {
                            public static interface Callbacks {
                                void onMyContainerAttached();
                            }
                        
                            @Override
                            public void onAttach(Activity activity) {
                                super.onAttach(activity);
                                Log.d(TAG, "--- onAttach");
                                ((Callbacks) activity).onMyContainerAttached();
                            }
                        
                            //... rest of code
                        }
                        

                        然后在活动中:

                        public class MainActivity extends Activity
                                implements MyContainerFragment.Callbacks
                        {
                            @Override
                            public void onMyContainerAttached() {
                                getFragmentManager()
                                        .beginTransaction()
                                        .replace(R.id.containerFrame, new MyFragment())
                                        .commit();
                            }
                        
                            //...
                        }
                        

                        【讨论】:

                          【解决方案29】:

                          在我的例子中,我使用片段类文件来声明列表视图适配器类。 我只是为公共适配器类使用了不同的文件,错误消失了。

                          【讨论】:

                            【解决方案30】:

                            当您在两个具有相同 ID 的片段中有两个视图时也会发生这种情况

                            【讨论】:

                            • 这是不正确的。在这种情况下,代码甚至无法编译。
                            猜你喜欢
                            • 2011-11-22
                            • 2013-02-26
                            • 2014-09-02
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多