2017-01-18 6 views
2

mit Debug getestet Ich habe meine App auf verschiedenen Geräten getestetApp stürzt ab, wenn geteilt und funktioniert gut, wenn Modus

Jelly Bean, Kitkat, Lutscher, Eibisch

-Fehlersuche mit direkt von meiner app und auch teilen von einem Handy zu einem anderen Handy.

Es arbeitet absolut in Ordnung in allen Mobiltelefonen in beiden Richtungen (ohne einmaligen)

Ich habe ein kitkat (4.4.4) Moto G Telefon, in dem der App als in anderen Geräten funktioniert prima, aber Wenn ich diese App teile und laufe, stürzt die App ab, bevor sie geöffnet wird.

Ich weiß nicht, was zu tun ist, da ich nicht wissen kann, was der Fehler sein könnte, seit mit usb-Debugging läuft funktioniert gut.

Mein Gradle Bauen

android { 
    compileSdkVersion 24 
    buildToolsVersion "25.0.1" 

    defaultConfig { 
     applicationId "com.abc.xyz" 
     minSdkVersion 16 
     targetSdkVersion 24 

    } 
    buildTypes { 

     debug { 
      minifyEnabled true 
     } 
     release { 
      shrinkResources true 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        'proguard-rules.pro' 
     } 
    } 

} 
+0

Post Fehlerprotokoll ... –

+0

@Divyesh Hallo Divyesh aber Fehlerprotokoll von wo? – SamH67

+0

@Divyesh App läuft gut mit USB-Debugging aber stürzt ab, wenn geteilt, so denke ich, ich weiß nicht, wo der Fehler generiert wird, da ich apk Fehlerprotokoll in mobilen ..... nicht kennen und in onCreate der ersten Aktivität Ich schätze, dass ich auch keine API anrufe, die einen Fehler erzeugen würde, wenn ich in einem anderen Netzwerk bin, in dem die API erstellt wird – SamH67

Antwort

1

Ich habe auch dieses Problem konfrontiert und die einzige funktionierende Lösung, die ich finden konnte, war instant run von Einstellungen in Android Studio zu deaktivieren. und dann einen sauberen Build und generieren Sie einen neuen app-debug.apk. teilen Sie diese apk mit mehreren Geräten

+0

Ja, das ist, was ich wollte Instant Run wird angezeigt, nachdem ich mein Studio vor kurzem aktualisiert ........ aber immer noch Absturzberichterstattung ist wichtig zu implementieren ...... – SamH67

+0

installieren Sie die apk, dann stecken Sie das Kitkat Telefon mit pc und dann können Sie den Logcat Crash-Bericht – Nilabja

+0

Nun, es funktioniert und wissen Sie, dass ich das debuggen musste {minifyEnable true} von meinem Gradel auch, da es einen Fehler gab und wenn ich sofort ausgeführt habe, dann verursachte dieses Debugging keine Problem ..... nicht bekommen, was passiert – SamH67

0

Dies ist Ihre Frage nicht direkt Lösung Spielzeug, aber es wird Ihnen helfen Lösung für jeden Absturz der App zu finden.

hinzufügen CustomExceptionHandler Klasse, die für jeden Absturz in app diese Ihnen helfen

public class CustomExceptionHandler implements UncaughtExceptionHandler { 

private UncaughtExceptionHandler defaultUEH; 

private String localPath; 

private String url; 

/* 
* if any of the parameters is null, the respective functionality 
* will not be used 
*/ 
public CustomExceptionHandler(String localPath) { 
    this.localPath = localPath; 
    this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler(); 
} 

public void uncaughtException(Thread t, Throwable e) { 
    String timestamp = TimestampFormatter.getInstance().getTimestamp(); 
    final Writer result = new StringWriter(); 
    final PrintWriter printWriter = new PrintWriter(result); 
    e.printStackTrace(printWriter); 
    String stacktrace = result.toString(); 
    printWriter.close(); 
    String filename = timestamp + ".stacktrace"; 

    if (localPath != null) { 
     writeToFile(stacktrace, filename); 
    } 


    defaultUEH.uncaughtException(t, e); 
} 

private void writeToFile(String stacktrace, String filename) { 
    try { 
     BufferedWriter bos = new BufferedWriter(new FileWriter(
       localPath + "/" + filename)); 
     bos.write(stacktrace); 
     bos.flush(); 
     bos.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

} 

Und fügen Sie diesen Code in mainActivity

if(!(Thread.getDefaultUncaughtExceptionHandler() instanceof CustomExceptionHandler)) { 
Thread.setDefaultUncaughtExceptionHandler(new CustomExceptionHandler(
     "/sdcard/<desired_local_path>")); 
} 

Hoffnung log schreibt ...!

+0

und wo werde ich diese App log hier -> sdcard/ "," http:///upload.php " – SamH67

+0

was dies tun pls aufwendigen Thread.setDefaultUncaughtExceptionHandler (neue CustomExceptionHandler ( "/sdcard/ "," http: // /upload.php ")); – SamH67

+0

bedeutet, Protokolldatei generieren und senden Sie es an PHP-Dateiserver –

Verwandte Themen