android.content.res.Resources $ NotFoundException:无法find资源ID#0xffffffff
我讨厌张贴代码,并问为什么它不工作,但我现在亏本了。 我试图运行下面的类,我得到了一个logcatexception,我不能解释。 即使是谷歌search收效甚微。 也许我只是不了解生态系统,但是例外情况很less。 我得到的例外如下:
03-06 21:50:43.031: E/AndroidRuntime(1013): FATAL EXCEPTION: main 03-06 21:50:43.031: E/AndroidRuntime(1013): android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.content.res.Resources.getResourceName(Resources.java:1659) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.view.ViewPager.populate(ViewPager.java:1012) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.view.ViewPager.populate(ViewPager.java:881) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1366) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 03-06 21:50:43.031: E/AndroidRuntime(1013): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer.doFrame(Choreographer.java:532) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.os.Handler.handleCallback(Handler.java:725) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.os.Handler.dispatchMessage(Handler.java:92) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.os.Looper.loop(Looper.java:137) 03-06 21:50:43.031: E/AndroidRuntime(1013): at android.app.ActivityThread.main(ActivityThread.java:5039) 03-06 21:50:43.031: E/AndroidRuntime(1013): at java.lang.reflect.Method.invokeNative(Native Method) 03-06 21:50:43.031: E/AndroidRuntime(1013): at java.lang.reflect.Method.invoke(Method.java:511) 03-06 21:50:43.031: E/AndroidRuntime(1013): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 03-06 21:50:43.031: E/AndroidRuntime(1013): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 03-06 21:50:43.031: E/AndroidRuntime(1013): at dalvik.system.NativeStart.main(Native Method) 03-06 21:55:44.231: E/Trace(1033): error opening trace file: No such file or directory (2)
我尝试将ViewPager移动到顶级内容(即setContent(pager)),但似乎没有工作。 任何input是受欢迎的。 代码如下:
编辑*我简化了这个例子,我仍然得到同样的问题。
import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView; public class AskQuestionActivity extends FragmentActivity { private static LayoutParams MATCH_PARENT = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT ); @Override protected void onCreate( Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); ViewPager pager = new ViewPager( this ); pager.setAdapter( new FragmentPagerAdapter( getSupportFragmentManager() ) { @Override public int getCount() { return 1; } @Override public Fragment getItem( int arg0 ) { return new BoardFragment(); } } ); setContentView( pager ); } public static class BoardFragment extends Fragment { @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) { TextView textView = new TextView( getActivity() ); textView.setText( "Board" ); textView.setGravity( Gravity.CENTER ); LinearLayout layout = new LinearLayout( getActivity() ); layout.setLayoutParams( MATCH_PARENT ); layout.addView( textView ); return layout; } } }
欢迎任何帮助。
所以我会张贴我认为是我的问题的解决scheme。 给我的上面的代码添加一行代码给ViewPager
一个“随机”的ID; 它设法解决我的问题。
起初,我确信设置自己的ID是不好的做法,但显然这样做是合法的。 即通过创build一个ids.xml文件,让Android生态系统为您生成一个ID。 我build议查看这些SOpost以获取更多信息 – 在这里和这里 。
否则,我会build议只为您的布局创build一个XML文件,并在您的Activity
获取ViewPager
(而不是编程实例化),但最终这一切取决于你想要完成的。
ViewPager pager = new ViewPager(this);
需要设置资源ID
pager.setId(0x1000);
我在布局文件夹下的XML布局文件遇到类似的问题。 该代码用于在eclipse中工作,但是当项目被移动到Android Studio我不断得到android.content.res.Resources $ NotFoundException。
为了解决这个问题,我最终重命名了导致问题并解决了问题的XML文件。 在此之前,我尝试重build项目,修改XML文件,但没有任何工作。
完全一样的问题。 我编程生成一个片段的viewpager。 当片段回到前台它坠毁。
即使,我已经为视图寻呼机生成了一个随机ID它仍然崩溃。 唯一的办法是给它分配一个固定的ID。 奇怪的!
我有同样的错误。 我是由我的Adapter类有一个额外的textView没有匹配的imageView引起的。 我有7个TextViews,只有6个ImageViews。 花了我几个小时找出一个简单的错误。
我遇到过同样的问题。 问题是缺less布局文件。 我已经把布局在layout-xlarge文件夹,但不是布局文件夹。 所以小屏幕平板电脑有这个问题。 这可能会给一些人一些线索。
当我设置适配器viewPager.setAdapter(adapter);
,只有在Android KitKat 4.4。 我尝试几乎所有的解决scheme,但不工作。
在我的情况下,soluation是当我将.xml文件drawable-nodpi拖到可绘制文件夹(这是一些SVG图像),并Build -> Clean Project
然后错误消失。