InflateException: archivo XML binario línea n. ° 1: error al inflar la clase causado por OutOfMemoryError

Aquí está mi código:

input.xml (carpeta de diseño)

                                                              

InputFragment.java

 import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.RadioButton; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import android.widget.Toast; public class InputFragment extends Fragment { private Button submit; private RadioButton deviceTypeRadio, daysAsCustomerRadio, averageSessionsRadio, conversionTimeRadio; private RadioButton monthlySpendRadio,viralityInvitesSentRadio, churnedUsersRadio, LTVTotalSpentRadio; private SeekBar daysAsCustomerSeek, averageSessionSeek, conersionTimeSeek, monthlySpendSeek; private SeekBar viralityInvitesSeek, ltvTotalSpentSeek; private TextView daysasAsCustomerText, averageSessionText, conversionTimeText, monthlySpendText; private TextView viralityInvitesText, letvTotalText; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //Intializing instance variables View view = inflater.inflate(R.layout.input, container,false); submit = (Button)view.findViewById(R.id.input_submit_button); return view; } } 

Puedo ejecutar este código correctamente, pero cuando cambié la orientación del Emulador, aparece el siguiente error.

 12-19 11:17:53.590: E/AndroidRuntime(5644): FATAL EXCEPTION: main 12-19 11:17:53.590: E/AndroidRuntime(5644): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxx/com.nFlate.xxx.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class  12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread.access$700(ActivityThread.java:141) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.os.Handler.dispatchMessage(Handler.java:99) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.os.Looper.loop(Looper.java:137) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread.main(ActivityThread.java:5041) 12-19 11:17:53.590: E/AndroidRuntime(5644): at java.lang.reflect.Method.invokeNative(Native Method) 12-19 11:17:53.590: E/AndroidRuntime(5644): at java.lang.reflect.Method.invoke(Method.java:511) 12-19 11:17:53.590: E/AndroidRuntime(5644): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 12-19 11:17:53.590: E/AndroidRuntime(5644): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 12-19 11:17:53.590: E/AndroidRuntime(5644): at dalvik.system.NativeStart.main(Native Method) 12-19 11:17:53.590: E/AndroidRuntime(5644): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class  12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.LayoutInflater.createView(LayoutInflater.java:613) 12-19 11:17:53.590: E/AndroidRuntime(5644): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 12-19 11:17:53.590: E/AndroidRuntime(5644): at com.nFlate.nflate.InputFragment.onCreateView(InputFragment.java:30) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1877) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:552) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.Activity.performStart(Activity.java:5114) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153) 12-19 11:17:53.590: E/AndroidRuntime(5644): ... 12 more 12-19 11:17:53.590: E/AndroidRuntime(5644): Caused by: java.lang.reflect.InvocationTargetException 12-19 11:17:53.590: E/AndroidRuntime(5644): at java.lang.reflect.Constructor.constructNative(Native Method) 12-19 11:17:53.590: E/AndroidRuntime(5644): at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.LayoutInflater.createView(LayoutInflater.java:587) 12-19 11:17:53.590: E/AndroidRuntime(5644): ... 27 more 12-19 11:17:53.590: E/AndroidRuntime(5644): Caused by: java.lang.OutOfMemoryError 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.content.res.Resources.loadDrawable(Resources.java:1965) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.View.(View.java:3330) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.View.(View.java:3259) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.ViewGroup.(ViewGroup.java:425) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.widget.RelativeLayout.(RelativeLayout.java:210) 12-19 11:17:53.590: E/AndroidRuntime(5644): ... 30 more 

Básicamente, el error se dirige al siguiente lugar:

 View view = inflater.inflate(R.layout.input, container,false); 

Esto solo ocurre en Emulator, no en el teléfono. ¿Que esta mal aquí?

Verifique su drawable/background_main es decir, la imagen de fondo de su diseño raíz: la VM se queda sin memoria cuando decodifica el bitmap. Haga las dimensiones de la imagen más pequeñas.

El problema ocurre porque * drawable / background_main * tiene una imagen de alta resolución. Entonces, cuando se carga, la máquina virtual se queda sin memoria .

Entonces, la mejor manera es reducir su tamaño o resolución.

Está utilizando este diseño en fragmento no en Activity.Y también hay otra excepción OutOfMemory su imagen de fondo es muy grande, intente reducirla.

Causado por: java.lang.OutOfMemoryError: el tamaño del bitmap excede el presupuesto de VM puede ser el verdadero culpable aquí. Intenta usar una imagen más pequeña para ver si se trata de un problema relacionado con la memoria. Consulte estos enlaces para ver ejemplos de problemas similares:

java.lang.OutOfMemoryError: el tamaño del bitmap excede el presupuesto de VM – android – ¿Cuántas imágenes? y excepción OutOfMemory al cargar bitmap desde almacenamiento externo

Mi problema era que tenía una forma con un con color ?selectableItemBackground . Sí, es tonto y es un caso específico, pero publicarlo aquí para personas con el mismo error.

He resuelto el mismo problema al reducir la dimensión de los botones .png en todos los archivos xml

Intente utilizar imágenes de diferentes resoluciones, como mdpi, hdpi, xhdpi, si solo utiliza imágenes de mayor resolución podría causar un locking en teléfonos de baja resolución.

Bueno, en mi caso la respuesta fue en xml design, conflict android: backgroundTint y android: tint

Diseñé un FloatinActionButton de esta manera:

  

y está bien, pero API> 23

Si diseñas para API_LEVEL <23, esta es la solución

  

Espero que te ayude,

Saludos

En mi caso, recibía excepciones ilógicas de inflación de clase, después de cavar durante un tiempo descubrí que el error se debía a bloques de código obsoletos relacionados con el propio framework Android.