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

AndroidAndroid Viewpager

Android Problem Overview


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.

Android Solutions


Solution 1 - Android

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.

Solution 2 - Android

ViewPager pager = new ViewPager(this);

need set resource id

pager.setId(0x1000);

Solution 3 - Android

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.

Solution 4 - Android

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.

Solution 5 - Android

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!

Solution 6 - Android

I had the same error. Mine was caused by my Adapter class having one extra textView that did not have a matching imageView. I had 7 TextViews and only 6 ImageViews. It took me a couple hours to figure out a simple mistake.

Solution 7 - Android

I had the same issue. The problem was the missing layout file. I had put the layout in layout-xlarge folder but not the layout folder. So small screen tablet had that issue. This might give some people a clue.

Solution 8 - Android

I get the same exception when I set adapter viewPager.setAdapter(adapter);, only in Android KitKat 4.4. I try almost all solutions but not working.

In my case, soluation was when I move .xml file drawable-nodpi to drawable folder (which was some SVG images), and Build -> Clean Project then error gone.

Solution 9 - Android

I was trying to set an Int value to the TextView directly.

Resolved by converting the value to String before setting it to the TextView.

Solution 10 - Android

I know this is an old question, but maybe the solution I found can help anyone with a similar problem...

The error message I got was the cryptic 'Android.Content.Res.Resources+NotFoundException: 'Unable to find resource ID #0x0' - only 'resource ID' is different from the origional question.

After a lot of research, I finally figured out that the crash had to do with a call to PushModalAsync(), although I had no idea why...

The solution that finally solved this issue for me can be found in the styles.xml file. I had assigned a value of #00ffffff to the android:windowBackground. It turns out that any hex color in <item name="android:windowBackground">#000000</item> will throw this exception.

The solution is to assign the hex color in the colors.xml file, and then reference this color in styles.xml like <item name="android:windowBackground">@color/window_background</item>

This is the 'bug' report that got me on the right track... Exception thrown on PushModalAsync() when android:windowBackground set as HEX

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionVijay SharmaView Question on Stackoverflow
Solution 1 - AndroidVijay SharmaView Answer on Stackoverflow
Solution 2 - AndroidShuweiTempView Answer on Stackoverflow
Solution 3 - AndroidFidel OrozcoView Answer on Stackoverflow
Solution 4 - AndroidKelvin R. SantiagoView Answer on Stackoverflow
Solution 5 - AndroidNCHENView Answer on Stackoverflow
Solution 6 - Androidluckyreed76View Answer on Stackoverflow
Solution 7 - AndroidAlpaslanView Answer on Stackoverflow
Solution 8 - AndroidMd Imran ChoudhuryView Answer on Stackoverflow
Solution 9 - AndroidiCantCView Answer on Stackoverflow
Solution 10 - AndroidAndre VoldView Answer on Stackoverflow