android.content.res.Resources $ NotFoundException: no se puede encontrar el ID de recurso # 0xffffffff

Odio publicar código y preguntar por qué no funciona, pero estoy perdido ahora mismo. Intenté ejecutar la siguiente clase a continuación, y recibí una excepción en Logcat que no puedo explicar. Incluso una búsqueda en Google produce pocos resultados. Tal vez simplemente no entiendo el ecosistema, pero la excepción tiene poca información. La excepción que obtengo es a continuación:

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) 

Traté de mover el ViewPager al contenido de nivel superior (es decir, setContent (pager)) pero eso no pareció funcionar. Cualquier entrada es bienvenida. El código está abajo:

EDIT * I Simplifica el ejemplo, y sigo teniendo el mismo problema.

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

Cualquier ayuda es bienvenida.

Así que publicaré lo que creo que es la solución a mi problema. Después de agregar una sola línea a mi código anterior, le ViewPager a ViewPager una ViewPager “aleatoria”; Logró arreglar mi problema.

Al principio estaba convencido de que configurar tu propia identificación es una mala práctica, pero aparentemente hay formas legítimas de hacerlo. A saber, creando un archivo ids.xml y permitiendo que el ecosistema de Android genere una identificación para usted. Recomiendo ver estas publicaciones de SO para obtener más información, aquí y aquí .

De lo contrario, recomendaría simplemente crear un archivo XML para su diseño y obtener ViewPager en su Activity (en lugar de instanciarlo programáticamente), pero al final todo depende de lo que esté tratando de lograr.

 ViewPager pager = new ViewPager(this); 

necesita establecer el id de recurso

 pager.setId(0x1000); 

Estaba teniendo un problema similar con los archivos de diseño XML que se encontraban debajo de la carpeta de diseño. El código solía funcionar en eclipse, pero cuando el proyecto se movió a Android Studio, seguí recibiendo android.content.res.Resources $ NotFoundException.

Para solucionar el problema, terminé cambiando el nombre de los archivos XML que causaban el problema y eso resolvió el problema. Antes de eso intenté reconstruir el proyecto, haciendo modificaciones al archivo XML, pero nada de eso funcionó.

Exactamente el mismo problema. Programmáticamente generé un viewpager en un fragmento. cuando el fragmento volvió al primer plano se estrelló.

A pesar de que ya generé una identificación aleatoria para el buscapersonas, todavía se cuelga. La única forma es asignarle un ID fijo. ¡Extraño!

Yo tenía el mismo error. La mía fue causada por mi clase de adaptador que tenía una textView adicional que no tenía un imageView correspondiente. Tenía 7 TextViews y solo 6 ImageViews. Me tomó un par de horas descubrir un simple error.

Tuve el mismo problema. El problema era el archivo de diseño faltante. Puse el diseño en la carpeta layout-xlarge pero no en la carpeta de diseño. Así que la tableta de pantalla pequeña tenía ese problema. Esto podría dar una idea a algunas personas.

Obtengo la misma excepción cuando configuro el adaptador viewPager.setAdapter(adapter); , solo en Android KitKat 4.4. Intento casi todas las soluciones pero no funcionan.

En mi caso, la solución fue cuando moví el archivo .xml drawable-nodpi a la carpeta dibujable (que era algunas imágenes SVG), y Build -> Clean Project luego desapareció el error.