Не удалось отправить отчет cra sh с acra - PullRequest
0 голосов
/ 06 апреля 2020

Я использую ACRA для cra sh отчетов в android. Мой серверный скрипт работает хорошо и успешно сохраняет журнал.

Но ACRA не может отправить журнал и показать следующую ошибку в logcat:

04-06 10:28:06.936 6170-6391/com.example.app:acra D/ACRA: About to start sending reports from SenderService
04-06 10:28:06.939 6170-6391/com.example.app:acra D/ACRA: Autodiscovered ReportSenderFactory of type HttpSenderFactory
04-06 10:28:06.939 6170-6391/com.example.app:acra D/ACRA: Mark all pending reports as approved.
04-06 10:28:06.940 6170-6391/com.example.app:acra I/ACRA: Sending report /data/data/com.example.app/app_ACRA-approved/2020-04-06T10:28:04.782-07:00-IS_SILENT.stacktrace
04-06 10:28:06.942 6170-6391/com.example.app:acra D/ACRA: Sending report using org.acra.sender.HttpSender
04-06 10:28:06.942 6170-6391/com.example.app:acra D/ACRA: Connect to http://mydomain.byethost3.com/
04-06 10:28:06.945 6170-6391/com.example.app:acra D/ACRA: Sending request to http://mydomain.byethost3.com/
04-06 10:28:06.945 6170-6391/com.example.app:acra D/ACRA: Http POST content : 
04-06 10:28:06.945 6170-6391/com.example.app:acra D/ACRA: {"REPORT_ID":"717548c7-6327-4f38-9d80-945ef0e4579d","APP_VERSION_CODE":1,"APP_VERSION_NAME":"1.0","PACKAGE_NAME":"com.example.app","FILE_PATH":"\/data\/data\/com.example.app\/files","PHONE_MODEL":"SM-G930K","BRAND":"samsung","PRODUCT":"heroltektt","ANDROID_VERSION":"5.1.1","BUILD":{"BOARD":"universal8890","BOOTLOADER":"moto","BRAND":"samsung","CPU_ABI":"x86","CPU_ABI2":"armeabi-v7a","DEVICE":"heroltektt","DISPLAY":"heroltektt-user 5.1.1 NRD90M 500191121 release-keys","FINGERPRINT":"samsung\/heroltektt\/heroltektt:5.1.1\/NRD90M\/500191121:user\/release-keys","HARDWARE":"samsungexynos8890","HOST":"SWHE9411","ID":"NRD90M","IS_DEBUGGABLE":false,"MANUFACTURER":"samsung","MODEL":"SM-G930K","PRODUCT":"heroltektt","RADIO":"unknown","SERIAL":"355325432478297","SUPPORTED_32_BIT_ABIS":["x86","armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["x86","armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1574283699000,"TYPE":"user","UNKNOWN":"unknown","USER":"se.infra","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"500191121","RELEASE":"5.1.1","RESOURCES_SDK_INT":22,"SDK":"22","SDK_INT":22,"SECURITY_PATCH":"2015-11-01"}},"TOTAL_MEM_SIZE":65921708032,"AVAILABLE_MEM_SIZE":63266045952,"BUILD_CONFIG":{"APPLICATION_ID":"com.example.app","BUILD_TYPE":"debug","DEBUG":true,"FLAVOR":"","VERSION_CODE":1,"VERSION_NAME":"1.0"},"CUSTOM_DATA":{},"IS_SILENT":false,"STACK_TRACE":"kotlin.KotlinNullPointerException\n\tat com.example.app.app.home.view.HomeFragment.onCreate(HomeFragment.kt:47)\n\tat androidx.fragment.app.Fragment.performCreate(Fragment.java:2684)\n\tat androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280)\n\tat androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1175)\n\tat androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)\n\tat androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)\n\tat androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)\n\tat androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)\n\tat androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:135)\n\tat android.app.ActivityThread.main(ActivityThread.java:5293)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat java.lang.reflect.Method.invoke(Method.java:372)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)\n","INITIAL_CONFIGURATION":{"compatScreenHeightDp":302,"compatScreenWidthDp":568,"compatSmallestScreenWidthDp":320,"densityDpi":240,"fontScale":1,"hardKeyboardHidden":"HARDKEYBOARDHIDDEN_YES","keyboard":"KEYBOARD_NOKEYS","keyboardHidden":"KEYBOARDHIDDEN_NO","locale":"en_IR","mcc":432,"mnc":11,"navigation":"NAVIGATION_NONAV","navigationHidden":"NAVIGATIONHIDDEN_YES","orientation":"ORIENTATION_LANDSCAPE","screenHeightDp":454,"screenLayout":"SCREENLAYOUT_SIZE_LARGE+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR","screenWidthDp":853,"seq":27,"smallestScreenWidthDp":480,"touchscreen":"TOUCHSCREEN_FINGER","uiMode":"UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO","userSetLocale":false},"CRASH_CONFIGURATION":{"compatScreenHeightDp":552,"compatScreenWidthDp":320,"compatSmallestScreenWidthDp":320,"densityDpi":240,"fontScale":1,"hardKeyboardHidden":"HARDKEYBOARDHIDDEN_YES","keyboard":"KEYBOARD_NOKEYS","keyboardHidden":"KEYBOARDHIDDEN_NO","locale":"en_IR","mcc":432,"mnc":11,"navigation":"NAVIGATION_NONAV","navigationHidden":"NAVIGATIONHIDDEN_YES","orientation":"ORIENTATION_PORTRAIT","screenHeightDp":828,"screenLayout":"SCREENLAYOUT_SIZE_LARGE+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR","screenWidthDp":480,"seq":28,"smallestScreenWidthDp":480,"touchscreen":"TOUCHSCREEN_FINGER","uiMode":"UI_MODE_TYPE_NORMAL+UI_MODE_NI
04-06 10:28:08.515 6170-6391/com.example.app:acra E/ACRA: Failed to send crash report for /data/data/com.example.app/app_ACRA-approved/2020-04-06T10:28:04.782-07:00-IS_SILENT.stacktrace
    org.acra.sender.ReportSenderException: Policy marked this task as incomplete. ACRA will try to send this report again.
        at org.acra.sender.ReportDistributor.sendCrashReport(ReportDistributor.java:123)
        at org.acra.sender.ReportDistributor.distribute(ReportDistributor.java:76)
        at org.acra.sender.SenderService.onHandleWork(SenderService.java:94)
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
        at android.os.AsyncTask$2.call(AsyncTask.java:292)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: org.acra.sender.ReportSenderException: Error while sending JSON report via Http POST
        at org.acra.sender.HttpSender.send(HttpSender.java:161)
        at org.acra.sender.ReportDistributor.sendCrashReport(ReportDistributor.java:111)
        at org.acra.sender.ReportDistributor.distribute(ReportDistributor.java:76) 
        at org.acra.sender.SenderService.onHandleWork(SenderService.java:94) 
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392) 
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383) 
        at android.os.AsyncTask$2.call(AsyncTask.java:292) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:818) 
     Caused by: java.io.EOFException
        at com.android.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:95)
        at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:179)
        at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:101)
        at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:628)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:388)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:332)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:500)
        at org.acra.http.BaseHttpRequest.send(BaseHttpRequest.java:104)
        at org.acra.sender.HttpSender.sendWithoutAttachments(HttpSender.java:190)
        at org.acra.sender.HttpSender.sendHttpRequests(HttpSender.java:172)
        at org.acra.sender.HttpSender.send(HttpSender.java:156)
        at org.acra.sender.ReportDistributor.sendCrashReport(ReportDistributor.java:111) 
        at org.acra.sender.ReportDistributor.distribute(ReportDistributor.java:76) 
        at org.acra.sender.SenderService.onHandleWork(SenderService.java:94) 
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392) 
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383) 
        at android.os.AsyncTask$2.call(AsyncTask.java:292) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:818) 
04-06 10:28:08.515 6170-6391/com.example.app:acra D/ACRA: Finished sending reports from SenderService

иногда просто показывать эту информацию в logcat:

04-06 23:04:27.010 1148-2310/com.example.app:acra I/ACRA: Sending report /data/data/com.example.app/app_ACRA-approved/2020-04-06T23:04:24.692+04:30-IS_SILENT.stacktrace
04-06 23:04:27.090 1148-2310/com.example.app:acra I/System: core_booster, getBoosterConfig = false
04-06 23:04:27.100 1148-2310/com.example.app:acra I/System.out: [CDS]rx timeout:20000
04-06 23:04:27.100 1148-2310/com.example.app:acra I/System.out: [socket][2] connection mydomain.byethost3.com/185.27.134.223:80;LocalPort=49516(5000)
04-06 23:04:27.100 1148-2310/com.example.app:acra I/System.out: [CDS]connect[mydomain.byethost3.com/185.27.134.223:80] tm:5
04-06 23:04:27.360 1148-2310/com.example.app:acra I/System.out: [socket][/192.168.1.102:49516] connected
04-06 23:04:28.020 1148-2310/com.example.app:acra I/ACRA: Request received by server
04-06 23:04:28.020 1148-2310/com.example.app:acra I/System.out: [CDS]rx timeout:100
04-06 23:04:28.020 1148-2310/com.example.app:acra I/System.out: [CDS]rx timeout:20000

мой класс приложения выглядит так:

class MainApp : Application() {
    public override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)

        val builder = CoreConfigurationBuilder(this)

        builder.apply {
            setBuildConfigClass(BuildConfig::class.java)
            setReportFormat(StringFormat.JSON)
            getPluginConfigurationBuilder(HttpSenderConfigurationBuilder::class.java).apply {
                setUri("http://mydomain.byethost3.com/")
                setHttpMethod(HttpSender.Method.POST)
                setEnabled(true)
            }
            getPluginConfigurationBuilder(ToastConfigurationBuilder::class.java).apply {
                setResText(R.string.common_crash_sent)
                setEnabled(true)
            }

            setEnabled(true)
        }

        ACRA.DEV_LOGGING = true
        ACRA.init(this, builder)
    }
}

Мой код сервера проверяет его с помощью простой формы html, которая отправляет данные на сервер, и код:

<?php 

if(!isset($_POST)){
    die("ok!");
}


if(sizeof($_POST) == 0){
    die( "okay!");
}


$i=0;
for(;;){
    $i++;
    $fileName = $i.".error";
    if(!file_exists($fileName)){
        $fp = fopen($fileName, 'w');
        fwrite($fp, implode("\n", $_POST));
        fclose($fp);
        echo "sorry!";
        die;
    }
}
?>

Я тестирую его на эмуляторе и физическом устройстве с vpn и без vpn, но все равно не работает.

Я добавил MainApp к манифесту, и все настройки верны, я думаю. Тост раздел работает, но отправка отчета всегда не удается.

Что мне делать?

...