Сбой приложения в IBM Mobilfirst - PullRequest
0 голосов
/ 09 ноября 2018

Я разрабатываю гибридное приложение с IBM Worklight 7.0.

Я ищу следующую команду из локального хранилища со следующим кодом. Этот код работает, нажимая каждую кнопку на экране. После того как пользователь некоторое время работал, приложение вылетает. Приводит ли это к поиску с помощью «like» команды? Этот код работает асинхронно?

Мой код:

var queryPart = WL.JSONStore.QueryPart().like('name', str).like('type', 
typeStr);
WL.JSONStore.get(allReason.name).advancedFind([queryPart]). 
then(function(arrayResults) { ... }

Logcat:

E/SQLiteLog( 1481): (10) POSIX Error : 11 SQLite Error : 3850
D/NONE    (26304): reasons event binded!
D/PhoneWindow(26304): *FMB* installDecor mIsFloating : true
D/PhoneWindow(26304): *FMB* installDecor flags : 8388610
W/ResourceType(26304): Failure getting entry for 0x01080ad0 (t=7 e=2768) 
(error -75)
D/InputDispatcher(  898): Focus left window: 26304
D/InputDispatcher(  898): Focus entered window: 26304
D/PhoneWindow(26304): *FMB* isFloatingMenuEnabled mFloatingMenuBtn : null
D/PhoneWindow(26304): *FMB* isFloatingMenuEnabled return false
D/NONE    (26304): Request [/apps/services/api/Bukalemun/android/ heartbeat]
I/System.out(26304): Thread-1548(ApacheHTTPLog):isSBSettingEnabled false
I/System.out(26304): Thread-1548(ApacheHTTPLog):isShipBuild true
I/System.out(26304): Thread-1548(ApacheHTTPLog):SMARTBONDING_ENABLED is 
false
I/System.out(26304): Thread-1548(ApacheHTTPLog):SmartBonding Enabling is 
false, SHIP_BUILD is true, log to file is false, DBG is false
D/Netd    (  256): getNetworkForDns: using netid 0 for uid 10187
I/System.out(26304): pool-5-thread-6 calls detatch()
D/HttpPostRequestSender(26304): WLHybridRequestSender.run in 
WLHybridRequestSender.java:42 :: Sending request 
http:// 
xxxx.org.tr:80 /Bukalemun/apps/services/api/Bukalemun/android/heartbeat
E/NONE    (26304): [/apps/services/api/Bukalemun/android/heartbeat] Host is 
not responsive. Try to manually access the URL through the android emulator 
browser to verify connectivity.
D/NONE    (26304): Failed to send heartbeat

Ниже приведен код, который доставляет данные в поля выбора.

  var queryPart = WL.JSONStore.QueryPart().like('name', regexStr3).like('type', 
  asansorTipi);
    WL.JSONStore.get(allReason.name).advancedFind([queryPart]).then(function(arrayResults) {
// if data not present , get the data from DB
if (arrayResults.length == 0) {
} else {
    var myLikeReasonId = arrayResults[0].json.reasonid;
    if(myLikeReasonId != null && myLikeReasonId != ' '){
            tmpVal = myLikeReasonId +','+ '2'; 
            reasonValue = tmpVal.split(',');
            $("#"+reasonValue[0]).each ( function() {
            if(reasonValue[1] == 1 || reasonValue[1] == 2 || reasonValue[1] == 3){
                   $(this).val(reasonValue[1]).change();
                    if(reasonValue[1] == "2") {
                         uygundegil = true;
                         uygunDegilArray.push(reasonValue[0]);
                    } else if(reasonValue[1] == "3"){
                         uygulanamaz = true;                                                                 
                         uygulanamazArray.push(reasonValue[0]);
                    } else {
                         uygun = true;                                                                   
                         uygunArray.push(reasonValue[0]);
                    }
                }
        });
        } else { 
               WL.Logger.error("collection filter returns null result.");           
          }
        }
        }).fail(function(errorObject) {
            WL.Logger.error("fail" + errorObject);
        });

1 Ответ

0 голосов
/ 26 ноября 2018

При поиске кода ошибки: 3850. Кажется, есть проблема с блокировкой ввода-вывода. Я бы окружил ваш код try {} catch (), и если вы получите ошибку 3850, подождите и попробуйте снова.

Код ошибки SQLITE_IOERR_LOCK - это расширенный код ошибки для SQLITE_IOERR, указывающий ошибку ввода-вывода в логике блокировки рекомендуемых файлов. Обычно ошибка SQLITE_IOERR_LOCK указывает на проблему с получением блокировки PENDING. Однако это также может указывать на разные ошибки блокировки на некоторых специализированных VFS, используемых на Mac.

...