Ошибка эмулятора Android - PullRequest
       42

Ошибка эмулятора Android

1 голос
/ 01 апреля 2012

Я успешно выполнил проект в системе с Android 2.2 ...

Когда я запустил проект в другой системе с такой же конфигурацией и параметрами эмулятора, он зависает ...

В журнале ошибок указано:

java.lang.RuntimeException: невозможно запустить действие. ComponentInfo {com.myabc / com.myabc.Screen}: android.view.InflateException: строка двоичного файла XML #11: Ошибка надувания класса

Может кто-нибудь дать мне решение для этого, так как оно серьезное для отладки приложения в какой-то другой системе ...

xmlя надуваюсь:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/splashback" 
>
 <ImageView android:id="@+id/img6" android:src="@drawable/splash71" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_x="0dip" android:layout_y="0dip"></ImageView>
 <ImageView android:id="@+id/img5" android:src="@drawable/splash5" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_x="0dip" android:layout_y="0dip"></ImageView>
 <ImageView android:id="@+id/img4" android:src="@drawable/splash4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_x="0dip" android:layout_y="0dip"></ImageView>
 <ImageView android:id="@+id/img3" android:src="@drawable/splash3" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_x="0dip" android:layout_y="0dip"></ImageView>
 <ImageView android:id="@+id/img2" android:src="@drawable/splash2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_x="0dip" android:layout_y="0dip"></ImageView>
 <ImageView android:id="@+id/img1" android:src="@drawable/splash1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_x="0dip" android:layout_y="0dip"></ImageView>
 <ImageView android:layout_width="wrap_content"  android:layout_height="wrap_content" android:id="@+id/img0" android:src="@drawable/screen8" android:layout_x="0dp" android:layout_y="0dp"></ImageView>
</AbsoluteLayout>

Полная трассировка стека говорит:

04-01 10:41:57.475: E/AndroidRuntime(430): FATAL EXCEPTION: main
04-01 10:41:57.475: E/AndroidRuntime(430): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myabc/com.myabc.Screen}: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown>
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.os.Looper.loop(Looper.java:123)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-01 10:41:57.475: E/AndroidRuntime(430):  at java.lang.reflect.Method.invokeNative(Native Method)
04-01 10:41:57.475: E/AndroidRuntime(430):  at java.lang.reflect.Method.invoke(Method.java:521)
04-01 10:41:57.475: E/AndroidRuntime(430):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-01 10:41:57.475: E/AndroidRuntime(430):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-01 10:41:57.475: E/AndroidRuntime(430):  at dalvik.system.NativeStart.main(Native Method)
04-01 10:41:57.475: E/AndroidRuntime(430): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown>
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.createView(LayoutInflater.java:513)
04-01 10:41:57.475: E/AndroidRuntime(430):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
04-01 10:41:57.475: E/AndroidRuntime(430):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.Activity.setContentView(Activity.java:1647)
04-01 10:41:57.475: E/AndroidRuntime(430):  at com.myabc.Screen.onCreate(Screen.java:29)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
04-01 10:41:57.475: E/AndroidRuntime(430):  ... 11 more
04-01 10:41:57.475: E/AndroidRuntime(430): Caused by: java.lang.reflect.InvocationTargetException
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.widget.ImageView.<init>(ImageView.java:108)
04-01 10:41:57.475: E/AndroidRuntime(430):  at java.lang.reflect.Constructor.constructNative(Native Method)
04-01 10:41:57.475: E/AndroidRuntime(430):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.view.LayoutInflater.createView(LayoutInflater.java:500)
04-01 10:41:57.475: E/AndroidRuntime(430):  ... 22 more
04-01 10:41:57.475: E/AndroidRuntime(430): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.Bitmap.nativeCreate(Native Method)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.content.res.Resources.loadDrawable(Resources.java:1709)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
04-01 10:41:57.475: E/AndroidRuntime(430):  at android.widget.ImageView.<init>(ImageView.java:118)

Ответы [ 3 ]

3 голосов
/ 01 апреля 2012

вы получаете OutOfMemoryError:bitmap size exceeds VM budget.Кажется, что растровые изображения, которые вы пытаетесь использовать для ImageViews, занимают огромное количество памяти.Лучше всего, если вы храните более легкие файлы изображений (уменьшаете их, уменьшая разрешение) в том месте, откуда вы получаете ваши изображения.Одним из менее предпочтительных способов является сжатие изображений одно за другим в памяти и каждый раз recycle ().

 private static Bitmap codec(Bitmap src, Bitmap.CompressFormat format,
                                    int quality) {
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            src.compress(format, quality, os);

            byte[] array = os.toByteArray();
            return BitmapFactory.decodeByteArray(array, 0, array.length);
        }

См. Этот пример на http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CreateBitmap.html

3 голосов
/ 01 апреля 2012

Причина: java.lang.OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины

Вы используете слишком много памяти.Уменьшите разрешение ваших изображений (масштабируя файлы изображений; не изменяя размер изображения) в макете и попробуйте снова.

Также, пожалуйста, никогда используйте AbsoluteLayout, он устарел, и вы столкнетесь с проблемами на многих устройствах.

2 голосов
/ 01 апреля 2012

Первое, что AbsoluteLayout не рекомендуется, было бы лучше, если бы вы использовали любой другой макет, поделитесь полным XML-файлом, который надувает также фрагмент кода, как вы надуваете код.

...