android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff

I hate posting code, and asking why it doesn't work, but I'm at a loss right now. I've tried to run the following class below, and I get an exception in logcat which I can't explain. Even a google search yields little results. Maybe I just don't understand the ecosystem, but the exception has little information. The exception I'm getting is below:

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)

I tried moving the ViewPager to the top level content (i.e. setContent( pager )) but that didn't seem to work. Any input is welcomed. The code is below:

EDIT* I Simplified the example, and I still get the same problem.

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;
        }
    }
}

Any help is welcomed.


So I'll post what I think is the solution to my problem. After adding a single line to my above code giving the ViewPager a "random" ID; it managed to fix my problem.

At first I was convinced that setting your own ID is bad practice, but apparently there are legitimate ways of doing this. Namely by creating an ids.xml file and letting the Android ecosystem generate an ID for you. I recommend checking out these SO posts for more information - here and here.

Otherwise, I would recommend just creating an XML file for your layout and getting the ViewPager in your Activity (instead of programmatically instantiating it), but ultimately it all depends on what you're trying to accomplish.


ViewPager pager = new ViewPager(this);

need set resource id

pager.setId(0x1000);

I was having a similar problem with XML layout files that were under the layout folder. The code used to work in eclipse but when the project was moved to Android Studio I kept getting the android.content.res.Resources$NotFoundException.

To fix the problem I ended up renaming the XML files that were causing the problem and that solved the problem. Before that I tried rebuilding the project, making modifications to the XML file but none of that worked.


Exactly same problem. I programmatically generated a viewpager in a fragment. when the fragment back to foreground it crashed.

Even though, I already generated a random id for the view pager it still crash. The only way is assign a fixed Id to it. Weird!


Now in 2021 this problem hit me in my Xamarin Forms with a AppShell that was working perfectly, but after upgraded to the last version of many Google AndroidX Nuget Packages started to crash with the message error of this post when opened the menu to change to another page. The solution in my case: I downgraded to the previous version all the libraries one by one and the culprit seems to be the Xamarin.AndroidX.Legacy.Support.V4. The v1.0.0.6 was the last one that worked without problems for me. I don't know the reason.