2012-04-01 8 views
1

ich erfolgreich ein Projekt in einem System, mit Android 2.2 ...Android-Emulator Fehler

Wenn ich das Projekt in einer anderen System lief, mit derselben Konfiguration und Emulator Optionen ausgeführt habe, stürzt ...

das Fehlerprotokoll sagt:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myabc/com.myabc.Screen}: android.view.InflateException: Binary XML file line #11: Error inflating class

mir jemand eine Lösung dafür bieten kann, als eine ernsthafte eine für die Anwendung in einem anderen System ausgetestet werden ...

Die xml im aufblähenden ist:

<?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> 

Der komplette Stack-Trace sagt:

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) 
+0

post die xml Sie – Akhil

+0

und die komplette stacktrace –

+0

@ Akhil- aufgeblasen XML und komplette Stack-Trace hinzugefügt werden Aufpumpen ... pls Freunde helfen ... – subrussn90

Antwort

3

Sie erhalten OutOfMemoryError:bitmap size exceeds VM budget. Es scheint, dass die Bitmaps, die Sie für ImageViews verwenden möchten, sehr viel Speicher benötigen. Es ist am besten, wenn Sie an der Stelle, von der Sie Ihre Bilder erhalten, leichtere Bilddateien speichern (verkleinern Sie sie, indem Sie die Auflösung verringern). Eine weniger bevorzugte Möglichkeit besteht darin, Bilder einzeln im Speicher zu komprimieren und jedesmal zu recyceln().

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

Sehen Sie dieses Beispiel bei http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CreateBitmap.html

+1

Die Bildgröße, die in der Anwendungsentwicklung verwendet werden soll, sollte unter Berücksichtigung der Größe genau entworfen werden .......... danke – subrussn90

3

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

Sie verwenden zu viel Speicher. Reduzieren Sie die Auflösung Ihrer Bilder (indem Sie die Bilddateien skalieren; nicht durch Ändern der Bildansichtsgröße) innerhalb des Layouts und versuchen Sie es erneut.

Auch bitte nie Verwenden Sie AbsoluteLayout, es ist veraltet und Sie werden auf vielen Geräten in Schwierigkeiten geraten.

+0

lass mich versuchen ........ thanks kumpel – subrussn90

+0

nein ..... es funktioniert nicht .......... – subrussn90

+0

Die Bildgröße, die in der Anwendungsentwicklung verwendet werden, sollte genau gestaltet werden , unter Berücksichtigung der Größe .......... danke – subrussn90

2

Das erste, was AbsoluteLayout besser wäre abgeschrieben wird, wenn Sie ein anderes Layout teilen die komplette XML-Datei verwenden, die auch Code-Schnipsel Aufblasen, wie Sie im Code aufblasen.

+0

Layout ist einfach sekundär ... wenn es auch veraltet ist, sollte die virtuelle Maschine es aufblasen ... aber ich bin in der Lage, im System zu laufen, wo die Anwendung ursprünglich angefangen wurde, sich zu entwickeln .... – subrussn90

+0

Wie von @Akhil vorschlagen, was Sie Bild sind Größe teilen Sie das Code-Snippet auch – Ishu

+0

Die Bildgröße ist vergleichsweise mittel, aber ich habe etwa 7 Bilder auf einmal laden ... wird das das Problem sein? – subrussn90