ejemplo crear java android xml android-layout android-inflate

java - crear - InflateException: archivo XML binario línea n. ° 1: error al inflar la clase<desconocido> causado por OutOfMemoryError



crear xml java ejemplo (9)

Aquí está mi código:

input.xml (carpeta de diseño)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:background="@drawable/background_main" > <ImageView android:id="@+id/logo_image" android:background="@drawable/background_green" android:src="@drawable/titleimage" android:layout_width="match_parent" android:layout_height="50dp" /> <ScrollView android:id="@+id/scroller" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/logo_image" android:layout_marginTop="10dp" > <TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchColumns="*" > <TableRow android:id="@+id/device_type_row" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="5dp" android:paddingBottom="5dp" android:layout_marginRight="5dp" > <RadioButton android:id="@+id/device_type_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/device_type" /> <RadioGroup android:id="@+id/device_type_radio_selection" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radioIos" android:layout_width="wrap_content" android:layout_height = "wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/iOS" /> <RadioButton android:id="@+id/radioAndroid" android:layout_width="wrap_content" android:layout_height = "wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/android" /> </RadioGroup> </TableRow> <TableRow android:id="@+id/days_as_customers_row" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="5dp" android:paddingBottom="5dp" android:layout_marginRight="5dp" > <RadioButton android:id="@+id/days_as_customers_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/days_as_customers" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:weightSum="2" > <SeekBar android:id="@+id/days_as_customer_seekbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/days_as_customer_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1/210" android:layout_weight="1" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/average_sessions_row" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/average_sessions" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/average_sessions" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:weightSum="2" > <SeekBar android:id="@+id/average_sessions_seekbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/average_sessions_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="240/9000" android:layout_weight="1" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/conversion_time_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/conversion_title" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:weightSum="2" > <SeekBar android:id="@+id/conversion_time_seekbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/conversion_time_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3/55" android:layout_weight="1" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/monthly_spend_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/monthly_spend" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:weightSum="2" > <SeekBar android:id="@+id/monthly_spend_seekbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/monthly_spend_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3/55" android:layout_weight="1" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/virality_invites_sent_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/virality_invites_sent" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:weightSum="2" > <SeekBar android:id="@+id/virality_invites_sent_seekbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/virality_invites_sent_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0-50" android:layout_weight="1" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/churned_users_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/churned_users" /> <RadioGroup android:id="@+id/churned_users_radio_selection" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radioYes" android:layout_width="wrap_content" android:layout_height = "wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/iOS" /> <RadioButton android:id="@+id/radioNo" android:layout_width="wrap_content" android:layout_height = "wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/android" /> </RadioGroup> </TableRow> <TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/ltv_total_spent_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/ltv_total_spent" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:weightSum="2" > <SeekBar android:id="@+id/ltv_total_spent_seekbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/ltv_total_spent_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0$-80$" android:layout_weight="1" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </TableRow> </TableLayout> </ScrollView> <Button android:id="@+id/input_submit_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@drawable/submit_button_img" /> </RelativeLayout>

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 <unknown> 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 <unknown> 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.<init>(View.java:3330) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.View.<init>(View.java:3259) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.view.ViewGroup.<init>(ViewGroup.java:425) 12-19 11:17:53.590: E/AndroidRuntime(5644): at android.widget.RelativeLayout.<init>(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í?


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

Diseñé un FloatinActionButton de esta manera:

<android.support.design.widget.FloatingActionButton android:id="@+id/fa_close_patient" android:layout_width="50dp" android:layout_height="50dp" android:scaleX="0.8" android:scaleY="0.8" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_gravity="right" android:layout_marginEnd="30dp" android:backgroundTint="@color/white" android:src="@drawable/ic_close_black_24dp" android:tint="@color/colorPrimaryDark" />

y está bien, pero API> 23

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

<android.support.design.widget.FloatingActionButton android:id="@+id/fa_close_patient" android:layout_width="50dp" android:layout_height="50dp" android:scaleX="0.8" android:scaleY="0.8" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_gravity="right" android:layout_marginEnd="30dp" app:backgroundTint="@color/white" android:src="@drawable/ic_close_black_24dp"/>

Espero que te ayude,

Saludos



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.


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.


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.


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 bloqueo en teléfonos de baja resolución.


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


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 mapa de bits. Haga las dimensiones de la imagen más pequeñas.