Чтобы отследить эту проблему, я создал простое приложение, которое выполняет только синхронизацию. Моя функция синхронизации останавливается из-за следующей ошибки (первые две строки — это информация из обратного вызова Zumero, следующее — полное исключение):
Код: Выделить всё
Total size: 1626397 bytes
Transferred : 1626392 bytes
Error 300 (sglib)[ZSS 3.3.0.4342 + Android SQLite (libe_sqlite3.so)3.31.13.31.13.31.13.31.1]: Java Exception during network call: java.net.ProtocolException: unexpected end of stream
at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:398)
at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:372)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:248)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:288)
at java.io.BufferedInputStream.read(BufferedInputStream.java:347)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at com.zumero.internal.ZumeroUtils.DoNetworkCall(ZumeroUtils.java:167)
src/core/client/zum_http__android_jni.c:214
src/core/client/zum_http__android_jni.c:290
src/core/client/zum_sync.c:7398
src/core/client/zum_sync.c:11963
src/core/client/zum_sync.c:13063
src/core/client/zum_sync.c:13527
Сервер Zumero — 3.2.1.4172, работает на IIS 8.5.9600.16384 на Windows Server 2012R2; Клиент Zumero — та же версия. Приложение представляет собой пустое приложение для Android, скомпилированное на VS2022.
Конечно, я попробую на одном из наших внутренних серверов, чтобы увидеть, сохраняется ли проблема, и, возможно, предоставить конкретный тестовый пример (я не могу поделиться данными своих клиентов. ..), а также создание того же приложения в Android Studio, хотя это всего лишь тест, перенос всего приложения в Android Studio невозможен.
Это фрагмент кода, который вызывает функцию синхронизации; наличие функции обратного вызова не влияет на результаты, она просто записывает в две первые строки общий/переданный размер пакета.
Код: Выделить всё
private string syncAsync()
{
try
{
ZumeroClient.Sync(_dbFile, "", "http://***.***.***.***:1045", REMOTE_SCHEMA, SYNC_SCHEMA, "user", "password", SyncCallback);
return "OK";
}
catch (ZumeroException zEx)
{
return zEx.ToString();
}
catch(Exception genEx)
{
return genEx.ToString();
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... l-the-data
Мобильная версия