App crashar vid återstart

Diskussion i 'Frågor, support och diskussion' startad av AshtrayY, 1 mar 2011.

  1. AshtrayY

    AshtrayY Baby Droid Medlem

    Blev medlem:
    9 jul 2009
    Inlägg:
    20
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag försöker skapa en enklare draw-app och har fått problem. Om jag stänger appen med home-knappen och sen öppnar den igen så crashar den. Vet inte om det kan vara nåt fel/nåt som saknas i min onCreate-funktion eller om det är något annat. Någon som har någon idé?

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.drawing_activity);

    setCurrentPaint();
    currentBrush = new PenBrush();

    drawingSurface = (DrawingSurface) findViewById(R.id.drawingSurface);
    drawingSurface.setOnTouchListener(this);
    drawingSurface.previewPath = new DrawingPath();
    drawingSurface.previewPath.path = new Path();
    drawingSurface.previewPath.paint = getPreviewPaint();

    redoBtn = (Button) findViewById(R.id.redoBtn);
    undoBtn = (Button) findViewById(R.id.undoBtn);

    redoBtn.setEnabled(false);
    undoBtn.setEnabled(false);
    }

    /Ash
     
  2. woody

    woody Teen Droid Medlem

    Blev medlem:
    3 sept 2009
    Inlägg:
    319
    Mottagna gillanden:
    19

    MINA ENHETER

    En stacktrace brukar vara en bra start för att hitta var det kraschar...
     
  3. graytest

    graytest Youth Droid Medlem

    Blev medlem:
    12 dec 2010
    Inlägg:
    101
    Mottagna gillanden:
    16

    MINA ENHETER

    Håller med woody. Kolla i LogCats logg. Crascher brukar markeras i rött, så hitta det första röda blocket med text från botten. Behöver du hjälp med att tyda texten kan du klistra in det här så kanske vi kan hjälpa!
     
  4. AshtrayY

    AshtrayY Baby Droid Medlem

    Blev medlem:
    9 jul 2009
    Inlägg:
    20
    Mottagna gillanden:
    0

    MINA ENHETER

    Får inte upp något rött i loggen. Kör jag debug-läge så hänger sig programmet med en svart skärm och filen SurfaceView.class öppnas med meddelandet "Source not found".

    /Ash
     
  5. corgrath

    corgrath Kid Droid Medlem

    Blev medlem:
    28 okt 2009
    Inlägg:
    69
    Mottagna gillanden:
    13

    MINA ENHETER

    Du får nog ladda upp programmet, eller göra en pastebin, så andra kan se allting.
     
  6. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 448
    Mottagna gillanden:
    2 199

    MINA ENHETER

    Kan du pastebin:a logcat-filen?
     
  7. AshtrayY

    AshtrayY Baby Droid Medlem

    Blev medlem:
    9 jul 2009
    Inlägg:
    20
    Mottagna gillanden:
    0

    MINA ENHETER

    Ok, här är LogCat-filen. Fick zippa den då den var så stor.

    Hoppas ni kan utläsa något ur den. Tack för att ni hjälper till.

    /Ash
     

    Bifogade filer:

  8. ozp

    ozp Teen Droid Medlem

    Blev medlem:
    6 maj 2010
    Inlägg:
    250
    Mottagna gillanden:
    31

    MINA ENHETER

    Finns några exceptions i loggen men inget som jag tror har med ditt problem att göra.

    Men detta kan nog vara intressant

    03-09 18:04:20.344: INFO/ActivityManager(60): Starting activity: Intent { act=android.intent.action.MAIN cat:(android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.combitech.cabdraw/.CabDraw }
    03-09 18:04:30.381: WARN/ActivityManager(60): Launch timeout has expired, giving up wake lock!
    03-09 18:04:30.433: WARN/ActivityManager(60): Activity idle timeout for HistoryRecord{43f50990 com.combitech.cabdraw/.CabDraw}

    Är det din app? Den verkar ta för lång tid på sig att starta så android dödar den efter 10 sekunder.
     
  9. ThePatrik

    ThePatrik Youth Droid Medlem

    Blev medlem:
    3 jun 2010
    Inlägg:
    248
    Mottagna gillanden:
    28

    MINA ENHETER

    Här är min 10-sekunders analys:

    I onCreate()
    currentBrush = new PenBrush();

    Detta gör en objektinstans; om du sen backar ur applikationen får du
    ett meddelande onPause(). Sen när applikationen startas igen, elller
    mer rätt, activityn visas igen, så får du inget onCreate() event, utan
    du får ett onResume()-event, alternativt om du fick en onStop() så
    får du ett onRestart() meddelande, men du får inte nödvändigtvis ett
    onCreate() varje gång din activity visas på skärmen.

    Vilka meddelanden du får beror på om Android medans din app har varit i
    bakgrunden låtit din app leva, eller slagit ihjäl den. Det är hur Androids
    livscykelmodell för Activity ser ut.

    Läs detta så du förstår denna modell:
    http://developer.android.com/reference/android/app/Activity.html

    Jag tror här i ditt fall att du initierar saker i onCreate() som dina andra
    metoder förlitar sig på, men att du inte tar hand om onPause(), onResume(),
    onStop() och onRestart() meddelandena på rätt sätt.
     
  10. graytest

    graytest Youth Droid Medlem

    Blev medlem:
    12 dec 2010
    Inlägg:
    101
    Mottagna gillanden:
    16

    MINA ENHETER

    Om appen inte stängs och kommer tillbaka via onResume/onRestart så betyder det ju att Android aldrig tog bort appen ur minnet och alla variabler är ju därför fortfarande initierade.. så det borde inte vara felet.