资源 $NotFoundException: 无法找到资源 ID # 0xffffff

我讨厌发布代码,讨厌问为什么它不能工作,但是我现在不知所措。我尝试运行下面的类,但是在 logcat 中遇到了一个无法解释的异常。即使是谷歌搜索也得不到什么结果。也许我只是不了解这个生态系统,但是这个例外几乎没有什么信息。我得到的例外如下:

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)) ,但似乎不起作用。欢迎任何投入。密码如下:

编辑 * 我简化了示例,但仍然得到相同的问题。

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

欢迎任何帮助。

58300 次浏览

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.

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.

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.

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!

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.

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.

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.

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

I ran into this error recently when I was trying to use the Navigation Component in Android like so:

<fragment
android:id="@+id/my_fragment"
android:label="My Fragment"
android:name="com.example.www"


<action
android:id="@+id/action_switch_app"
app:destination="@id/switch_app"
app:enterAnim="@animator/fragment_open_enter"
app:popEnterAnim="@animator/fragment_open_enter"
app:popExitAnim="@animator/fragment_fade_exit"/>


</fragment>


<activity
android:id="@+id/switch_app"
android:action="android.intent.action.VIEW"
android:data="https://another_app.com"
/>


The fragment animations do not belong in the action tag where the destination is an activity in another app.

Solution 2022:

REMOVE app/build package.

When you change id view delete app/build package.


OR: Rebuild Project

enter image description here