Bilder zu groß, App stürzt ab?!

  • Antworten:59
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 110

05.09.2014, 17:42:27 via Website

Hallo,

ich benutze für meine App jpg und png Bilder (640x480), die jeweils nicht größer als 180KB sind. Trotzdem scheint das noch zu viel zu sein. Die App stürzt deswegen immer ab. Denn wenn ich viel "magere" Bilder benutze, läuft die App einwandfrei. Muss ich die Bilder noch weiter verkleinern (geht das überhaupt?) oder muss ich was in meinem Code ändern?

VG
J.S.

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 17:45:41 via Website

Vlt liegts ja am code aber ohne diesen zu gesicht bekommen zu haben, kann ich das nicht sagen.
Gibts denn ne Exception für den absturz ( vlt. OutOfMemory)?
Vlt musst du die Bilder acuh nach dem benutzen aus dem Speicher löschen oder den GC benutzen

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

05.09.2014, 17:56:35 via Website

Ja richtig. Es kommt zu "OutOfMemory". Wie meinst du das aus dem Speicher löschen?

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 17:57:05 via Website

Jetzt erstmal langsam.
Wie sieht denn dein Code aus?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

05.09.2014, 18:03:28 via Website

Na ja, an dem Code kann ja nichts falsch sein, wenn er mit "mageren" Bildern funktioniert oder?

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.640

05.09.2014, 18:12:28 via App

Trotzdem würde es helfen den Code zu posten weil wir sonst nur im Dunkeln tappen und dementsprechend schlecht helfen können.

Ich sammle gerne Namen in meinem Death Note.

Samsung Galaxy Note 2<3 -> Samsung Galaxy Note 3 <3

Antworten
  • Forum-Beiträge: 1.904

05.09.2014, 18:13:01 via App

Zwischen durch wie gesagt die Bilder freigeben mit bild=null, wenn die App sie nicht mehr braucht.
Außerdem könnte System.gc(), welche den Garbage Collector laufen lässt, etwas bringen. Dadurch werden glaube ich die null Referenzen komplett gelöscht und Speicher freigemacht.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
  • Forum-Beiträge: 110

05.09.2014, 18:28:10 via Website

Ich habe die Bilder gar nicht in den Java-Code eingebunden. Sie sind nur in der XML definiert?!

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 19:25:55 via Website

Und wie sieht dein LogCat aus?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

05.09.2014, 19:37:44 via Website

Tag: AndroidRunTime

    FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.moja.wbf/com.moja.wbf.GL}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.os.Handler.dispatchMessage(Handler.java:99)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.os.Looper.loop(Looper.java:137)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.ActivityThread.main(ActivityThread.java:5041)
09-05 08:15:49.681: E/AndroidRuntime(815): at java.lang.reflect.Method.invokeNative(Native Method)
09-05 08:15:49.681: E/AndroidRuntime(815): at java.lang.reflect.Method.invoke(Method.java:511)
09-05 08:15:49.681: E/AndroidRuntime(815): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-05 08:15:49.681: E/AndroidRuntime(815): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-05 08:15:49.681: E/AndroidRuntime(815): at dalvik.system.NativeStart.main(Native Method)
09-05 08:15:49.681: E/AndroidRuntime(815): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
09-05 08:15:49.681: E/AndroidRuntime(815): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
09-05 08:15:49.681: E/AndroidRuntime(815): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.Activity.setContentView(Activity.java:1881)
09-05 08:15:49.681: E/AndroidRuntime(815): at com.moja.wbf.GL.onCreate(GL.java:13)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.Activity.performCreate(Activity.java:5104)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
09-05 08:15:49.681: E/AndroidRuntime(815): ... 11 more
09-05 08:15:49.681: E/AndroidRuntime(815): Caused by: java.lang.reflect.InvocationTargetException
09-05 08:15:49.681: E/AndroidRuntime(815): at java.lang.reflect.Constructor.constructNative(Native Method)
09-05 08:15:49.681: E/AndroidRuntime(815): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
09-05 08:15:49.681: E/AndroidRuntime(815): ... 23 more
09-05 08:15:49.681: E/AndroidRuntime(815): Caused by: java.lang.OutOfMemoryError
09-05 08:15:49.681: E/AndroidRuntime(815): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.content.res.Resources.loadDrawable(Resources.java:1965)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.View.<init>(View.java:3330)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.View.<init>(View.java:3259)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.view.ViewGroup.<init>(ViewGroup.java:425)
09-05 08:15:49.681: E/AndroidRuntime(815): at android.widget.RelativeLayout.<init>(RelativeLayout.java:210)
09-05 08:15:49.681: E/AndroidRuntime(815): ... 26 more

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 19:50:49 via Website

Was steht denn hier:
at com.moja.wbf.GL.onCreate(GL.java:13) ?

Das ist ein XML Problem und hat nix mit den Bilder oder einem Mem Error zu tun.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

05.09.2014, 19:56:56 via Website

Wieso? wbf heißt die App. GL wäre die Activity, die als nächstes erscheinen soll, aber davor stürzt er immer ab. Es sei denn ich nehme "magere" Bilder. Dann erscheint GL ohne Probleme?! Die XML ist auch ok von GL.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quot;
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/green" >

<Button
    android:id="@+id/button1"
    android:layout_width="150dp"
    android:layout_height="75dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="60dp"
    android:background="@drawable/yellow"
    android:onClick="GL2"
    android:text="WEITER" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button1"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="13dp"
    android:src="@drawable/bild" />

</RelativeLayout>

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 19:59:45 via Website

Wenn du jetzt in den ImageViews die android:src Zeile herausnimmst, dan tut es?
Der Fehler ist ja im Inflating, und kein Mem Fehler.
Die Logik kapier ich jetzt nicht.

— geändert am 05.09.2014, 20:00:15

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

05.09.2014, 20:06:00 via Website

Ja, der stürzt immer ab an der Stelle, außer ich ändere die android:src Zeile. Daher muss das iwie mit dem Bild zusammenhängen.

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 20:17:10 via Website

Was haben diese denn für eine Auflösung?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

05.09.2014, 20:42:03 via Website

Danke!

@Pascal: 640x480. Groß sind sie auch nicht. Es muss also an den Dimensionen liegen:

To avoid java.lang.OutOfMemory exceptions, check the dimensions of a
bitmap before decoding it

Ehrlich gesagt kapier ich aber gar nicht so richtig was dimensions heißt und wie ich diese herausfinde?!

— geändert am 05.09.2014, 20:42:14

Antworten
  • Forum-Beiträge: 11.137

05.09.2014, 21:47:42 via Website

@Ludy: Vermute mal dass dort nur nen View inflater oder ein setContentView seine Wurzeln hat, da es hone Bilder in der img-View ja tut

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

08.09.2014, 19:54:23 via Website

Oder kann es sein, dass das Problem darin liegt, dass ich zu viele Activities habe? Ich habe 80Activities und in jeder ist ein Bild. Ist das zu viel?

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.868

08.09.2014, 20:04:38 via Website

J.S.

Oder kann es sein, dass das Problem darin liegt, dass ich zu viele Activities habe? Ich habe 80Activities und in jeder ist ein Bild. Ist das zu viel?

Hast du da noch ne Übersicht? :O 80 Activity und immer für ein Bild, ich glaube du hast kein vernünftiges Konzept.

— geändert am 08.09.2014, 20:04:59

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung-App

Download Samsung Firmware Tool

Meine Wunschliste

Telegram News Feed

Antworten
  • Forum-Beiträge: 11.137

08.09.2014, 20:06:18 via Website

Wenn das wirklich so ist, dann mach es doch dynamisch.
Z.B. 1. Activity, der du die ID des Bildes übergibtst.
Da hast du dann Möglichkeiten für alle 80 Bilder nur eine Avtivity zu haben.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

08.09.2014, 20:10:18 via Website

Aber was ist, wenn man Activities hat, die nicht nur Bilder darstellen, sondern auch irgendwelche Animationen oder so? Wenn ich also bspw 50 verschiedene Animationen habe. Muss ich dann nicht dafür jeweils eine extra Activity starten? Schließlich unterscheiden sich diese Activities in ihrem Java-Code. Also bspw habe ich auf der ersten Seite einen tanzenden Clown und auf der nächsten Seite eine andere Animation. Muss ich dann nicht für den Clown eine eigene Activity starten. Und dann eine neue Activity für die zweite Seite etc?

Antworten
Gelöschter Account
  • Forum-Beiträge: 336

08.09.2014, 20:14:07 via App

J.S.

Aber was ist, wenn man Activities hat, die nicht nur Bilder darstellen, sondern auch irgendwelche Animationen oder so? Wenn ich also bspw 50 verschiedene Animationen habe. Muss ich dann nicht dafür jeweils eine extra Activity starten? Schließlich unterscheiden sich diese Activities in ihrem Java-Code. Also bspw habe ich auf der ersten Seite einen tanzenden Clown und auf der nächsten Seite eine andere Animation. Muss ich dann nicht für den Clown eine eigene Activity starten. Und dann eine neue Activity für die zweite Seite etc?

Du kannst im Java Code doch abfragen welches Bild grade in der Activity angezeigt wird und dementsprechend eine Animation abspielen

Android Developer

Antworten
  • Forum-Beiträge: 110

08.09.2014, 20:19:18 via Website

Das heißt also, dass ich eine Activity habe. Und in diese eine Activity binde ich die 80 verschiedenen Seiten meiner App ein? D.h. also, dass ich für diese eine Activity einen Code brauche, der definiert, wann die nächste Seite anfängt. Und was auf der jeweiligen Seite dann passiert habe ich ja schon codiert. Diese 80 verschiedenen Codes kopiere ich dann einfach in diese eine Activity?!

Antworten
  • Forum-Beiträge: 11.137

08.09.2014, 20:22:27 via Website

Kommt darauf an, was das für Codes sind.
Wenn es einfach dur die Drawable ID für das Bild ist, ist es einfach.
Da ich 1. dein Vorhaben nicht kenne
2. deine "Codes" von denen du sprichtst nicht kenne
kann ich gerade keine Aussage darüber machen.
Bitte poste doch ein Beispiel und erkläre dein Vorhaben.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

08.09.2014, 20:31:56 via Website

Nee, gleich nicht. Für jede Seite gibt es anspruchsvollere Java-Animationen. Und nicht nur bloß eine Datei aus dem Drawable-Ordner. Sondern das sind in Eclipse Java hergestellte Animationen, die sich für jede Seite der App unterscheiden sollen. Auf der ersten Seite fliegen z.B. Ballons durch die Gegend, wenn man auf einen Button klickt. Auf der nächsten Seite folgt eine andere Animation, wenn man auf einen Button klickt etc. Wie als würde man durch verschiedene Level gehen. Und diese mit Eclipse Java hergestellten "Level" kann ich alle in eine Activity packen?

— geändert am 08.09.2014, 20:32:31

Antworten
  • Forum-Beiträge: 11.137

08.09.2014, 20:33:56 via Website

Ist die Animation in einer XML festgelegt?
Wie wird sie aufgerufenß
Vlt mal eine Beispielactivity.
Dann kann man sich besser hineindenken

— geändert am 08.09.2014, 20:34:25

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

08.09.2014, 20:55:07 via Website

Nee, die Animationen habe ich im Java-Code definiert. In der XML ist das Bild, das animiert werden soll. Aber die Animation selber ist im Java-Code definiert. Der Java-Code für jede Seite/Activity sieht ungefähr folgendermaßen aus (die Animation ist nicht dabei):

package com.example.xxx;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;

public class PictureOne extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pictureone);}

public void Picture0 (View view){
    Intent i = new Intent(this, PageZero.class);             
        startActivity(i);}}

public void Picture2 (View view){
    Intent i = new Intent(this, PageTwo.class);             
        startActivity(i);}}

Ganz unten im Java-Code habe ich einen Code damit die verschiedenen Seiten/Activities miteinander verbunden sind. Das müsste ich dann nach eurer Meinung löschen und alle Seiten in eine Activity bringen.
Die XML sieht für jede Seite/Activity ungefähr folgendermaßen aus:

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >



    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:layout_marginLeft="14dp"
        android:src="@drawable/pic1" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/left" 
        android:onClick="Picture0"/>

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/right" 
        android:onClick="Picture2"/>

</RelativeLayout>

Und bisher habe ich wie gesagt für jede Seite eine eigene Activity und diese untereinander über Pfeile (left/right) verbunden.

Antworten
  • Forum-Beiträge: 11.137

08.09.2014, 21:03:55 via Website

Ist es nicht einfacher, du identifizierst die Seiten durch ihre Setenzahl?
Udn dann hast du irgendwo eine Liste mit den Ddaten und Animationen?
Beispiel (kann pseudocode enthalten..)

    package com.example.xxx;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;

public class PictureOne extends Activity {
int page; //Integer f&uuml;r die Seitenzahl
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pictureone);
page = (int)getIntent().getExtra("page"); //Bekomme Seitenzahl aus intent

String data = deineDataList.get(page); //Hole String daten der aktuellen Seite
Animation anim = animList.get(page);

}

public void Picture0 (View view){
    Intent i = new Intent(this, PictureOne .class);   
i.putExtra("page",page+1);          
        startActivity(i);}}

public void Picture2 (View view){
    Intent i = new Intent(this, PictureOne .class);          
i.putExtra("page",page-1);             
        startActivity(i);}}

Wie das mit den Daten ist, geht aus deinem Beispiel nicht hervor, deswegen kann ich da nix festmachen.
Aber allein vom Grundgerüst sollte es gegen.
Dann benötigst du nurnoch Listen (Arraylist) die deine Daten in der richtigen Reihenfolge beinhalten.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

08.09.2014, 21:43:34 via Website

Vielen Dank! Bei

page = (int)getIntent().getExtra("page"); 

zeigt er mir bei getExtra "is undefined for the type Intent" an? Was soll ich da machen?

Antworten
  • Forum-Beiträge: 11.137

08.09.2014, 21:49:37 via Website

Da könntest du die richtige Syntax nachschauen.
Das ist nur Pseudocode.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

08.09.2014, 22:39:00 via Website

ok. Hat das irgendeinen bestimmten Namen nach dem ich suchen kann?

Antworten
  • Forum-Beiträge: 1.904

09.09.2014, 07:10:53 via App

Intent extra :)

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
  • Forum-Beiträge: 110

22.09.2014, 21:13:11 via Website

Nochmal nachgefragt. Wenn ich jetzt eine mehrseitige App erstellen möchte, dann muss ich doch für jede Seite dieser App eine neue Acitivty (.class) samt neuer XML erstellen?! Mein Wunsch ist es nun auf jeder Seite drei Buttons zu haben. Ein Button führt zur davorigen Seite (bspw zur SeiteEins), ein Button führt ins Menü und einer zur nächsten Seite (bspw SeiteDrei). Dazu muss ich in jeder Activity folgenden intent-Code eingeben, damit die Seiten miteinander verknüpft sind, oder?

public void Menue (View view){
        Intent i = new Intent(this, Menue.class);             
            startActivity(i);}

    public void S1 (View view){
        Intent i = new Intent(this, SeiteEins.class);             
            startActivity(i);}

    public void S3 (View view){
        Intent i = new Intent(this, SeiteDrei.class);             
            startActivity(i);

Mein Problem ist, dass die App nach einiger Zeit immer abstürzt. Wenn ich die intent-Funktion richtig angewandt habe, dann muss es wohl an den Bildern liegen, die ich nutze. Denn ich habe die App schonmal mit anderen Bildern laufen lassen und da ist sie nicht abgestürzt...

— geändert am 22.09.2014, 21:44:12

Antworten
  • Forum-Beiträge: 11.137

22.09.2014, 21:45:02 via App

Ich weiss nicht warum du zum Navigiereun unbedingt Buttons nehmen musst. Ein Navigation Drawer oder ne Tab/Viewapager Activjty/Menü ist besser geeignet.

Warum stürtzt die App ab?
Log?
Wenn deine App prinzipiell tut dann liegt es an irgend einem Code und nicht an Bildern.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

22.09.2014, 22:05:36 via Website

Jetzt bin ich schon dabei...Oder liegt es an dem Intent-Code, dass ich die Buttons über ◦findViewById() und ◦setOnClickListener in den Java-Code integrieren muss? Denn momentan habe ich im nur den genannten Intent-Code in der jeweiligen Activity...und die Verlinkungen über die Buttons zu den anderen Seiten nur im XML-Code...

— geändert am 22.09.2014, 22:09:41

Antworten
  • Forum-Beiträge: 11.137

23.09.2014, 06:37:55 via App

Sowas kann schonmal zu Fehlern führen. Ich würde da lieber eins der Standart Menüs einbauen. Zudem ist dann der Menücode jeder Activity gleich.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

23.09.2014, 20:53:02 via Website

äh, wie meinst du das genau? Ich dachte bei mehrseitigen Apps geht nur Intent oder ViewPager...?!

Antworten
  • Forum-Beiträge: 11.137

23.09.2014, 21:11:07 via App

Nein es gint noch andere sachen wie die TabActivity etc.
Aber so wich ich das Verstanden habe Navigierst du mit Buttons auf jedem Layout das ist nicht wirklich effizient.

Ps: Ohne deinen Fehlercode aus Logcat kommen wir nicht weiter..

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

24.09.2014, 13:07:29 via Website

LogCat:
        Tag: AndroidRunTime

        FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.moja.wbf/com.moja.wbf.GL}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.os.Handler.dispatchMessage(Handler.java:99)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.os.Looper.loop(Looper.java:137)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.ActivityThread.main(ActivityThread.java:5041)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at java.lang.reflect.Method.invokeNative(Native Method)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at java.lang.reflect.Method.invoke(Method.java:511)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at dalvik.system.NativeStart.main(Native Method)
    09-05 08:15:49.681: E/AndroidRuntime(815): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.createView(LayoutInflater.java:613)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.Activity.setContentView(Activity.java:1881)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at com.moja.wbf.GL.onCreate(GL.java:13)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.Activity.performCreate(Activity.java:5104)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    09-05 08:15:49.681: E/AndroidRuntime(815):  ... 11 more
    09-05 08:15:49.681: E/AndroidRuntime(815): Caused by: java.lang.reflect.InvocationTargetException
    09-05 08:15:49.681: E/AndroidRuntime(815):  at java.lang.reflect.Constructor.constructNative(Native Method)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.LayoutInflater.createView(LayoutInflater.java:587)
    09-05 08:15:49.681: E/AndroidRuntime(815):  ... 23 more
    09-05 08:15:49.681: E/AndroidRuntime(815): Caused by: java.lang.OutOfMemoryError
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.content.res.Resources.loadDrawable(Resources.java:1965)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.View.<init>(View.java:3330)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.View.<init>(View.java:3259)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.view.ViewGroup.<init>(ViewGroup.java:425)
    09-05 08:15:49.681: E/AndroidRuntime(815):  at android.widget.RelativeLayout.<init>(RelativeLayout.java:210)
    09-05 08:15:49.681: E/AndroidRuntime(815):  ... 26 more

Antworten
  • Forum-Beiträge: 11.137

24.09.2014, 13:32:18 via App

Das XML ist irgendwie fals. Deswegen auch eine Inflate Exception.
Poste bitte mal die XML die in der GL.java verwendet wird.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

24.09.2014, 14:05:34 via Website

Da habe ich nichts besonderes drin. Aber wie gesagt, läuft die App ohne Probleme, wenn ich andere Bilder verwende:

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >



    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:layout_marginLeft="14dp"
        android:src="@drawable/pic1" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/left" 
        android:onClick="Picture0"/>

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/right" 
        android:onClick="Picture2"/>

Antworten
  • Forum-Beiträge: 11.137

24.09.2014, 14:09:20 via Website

Was passiert denn wenn du die Bilder einfach mal herunterrechnest (die Bilddateien) z.b. auf 200px?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

24.09.2014, 14:41:39 via Website

Du meinst alle auf 200 x 200 reduzieren?

Antworten
  • Forum-Beiträge: 11.137

24.09.2014, 14:44:19 via Website

ja, wenn es dir nicht zu viel aufwand macht :P

Edit: Vlt. original Dateien speichern

— geändert am 24.09.2014, 14:45:05

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 110

24.09.2014, 14:55:03 via Website

Paint bietet mir an: 266 x 200 oder 200 x 150 ? Welches soll ich nehmen?

Antworten