2017-01-18 28 views
2

Я проверил мое приложение на нескольких устройствахApp сбой при совместном использовании и отлично работает при тестировании с использованием режима отладки

Желе фасоль, Kitkat, леденец, Зефир

Использование отладки непосредственно из моего приложения и а также обмена с одного мобильного телефона на другой.

Он работает абсолютно нормально во всех мобильных телефонов в обоих направлениях (исключая один)

У меня есть один KitKat (4.4.4) Moto G телефон, в котором приложение работает отлично, как и в других устройствах, но когда я делюсь этим приложением и запускаю его, приложение сбрасывает перед его открытием.

Не знаю, что делать с тех пор, как я не могу знать, что может быть ошибкой, поскольку работает с использованием usb debugging работает нормально.

Моих Gradle Построить

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

сообщение error log ... –

+0

@Divyesh Привет Divyesh, но журнал ошибок откуда? – SamH67

+0

Приложение @Divyesh работает отлично с usb-отладкой, но сбой при совместном использовании, поэтому, я думаю, я не знаю, где будет генерироваться ошибка, так как я не знаю, как зарегистрировать ошибку apk в мобильном телефоне ..... и в onCreate of first activity Я предполагаю, что я не звоню на какой-либо api, который бы породил ошибку, если я нахожусь в другой сети, в которой api сделан – SamH67

ответ

1

Я также столкнулся с этой проблемой, и единственным рабочим решением, которое я смог найти, было отключить instant run от настроек в студии android. а затем выполните чистую сборку и создайте новый app-debug.apk. поделиться этим apk с несколькими устройствами

+0

Да, это то, что я хотел, чтобы мгновенный запуск показывался после того, как я недавно обновил свою студию ........ но все же аварийная отчетность важна для реализации ...... – SamH67

+0

установить apk, затем подключить телефон kitkat с помощью pc, а затем вы можете получить отчет о сбое логарифма – Nilabja

+0

Ну, это сработало, и вы знаете, что мне пришлось удалить этот debug {minifyEnable true} из моего градиента, так как произошла некоторая ошибка, и когда я использовал мгновенный запуск, эта отладка не вызывала никаких ошибок проблема ..... не получается, что происходит – SamH67

0

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

Добавить CustomExceptionHandler класса, который будет писать журнал для любой аварии в приложении

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

} 

И добавить этот код в mainActivity

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

Надеется, что это поможет вам ...!

+0

и где я увижу этот журнал приложений здесь -> sdcard/ "," http: // /upload.php " – SamH67

+0

что это будет делать PLS-разработка Thread.setDefaultUncaughtExceptionHandler (новый пользовательскийExceptionHandler ( "/sdcard/ "," http: // /upload.php ")); – SamH67

+0

это означает, что файл журнала сгенерирован и отправлен на сервер php-файлов –

 Смежные вопросы

  • Нет связанных вопросов^_^