#java #android
Вопрос:
Я использую эту библиотеку сканера кода. Все работает хорошо, пока я не попытаюсь проверить, существует ли идентификатор элемента (строка) уже в моем наборе.
Смотрите код ниже
scannedTicketIdSet = Collections.synchronizedSet(
qrTickets.stream()
.map(QRCodeDataDatabase::getTicketId)
.collect(Collectors.toSet())
);
.......
mCodeScanner = new CodeScanner(this, scannerView);
mCodeScanner.setDecodeCallback(new DecodeCallback() {
@Override
public void onDecoded(@NonNull final Result result) {
runOnUiThread(new Runnable() {
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void run() {
Toast.makeText(AddTicketActivity.this, result.getText(), Toast.LENGTH_SHORT).show();
try {
System.out.println(result.getText());
QRCodeData ticket = new ObjectMapper().readValue(result.getText(),QRCodeData.class);
if (!scannedTicketIdSet.contains(ticket.getTicketId())){ //The problem is here
} else {
System.out.println("Worked!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
});
Когда мой код содержит это if
утверждение, он начинает аварийно завершаться. Если я поставлю точку останова, я смогу поймать else
ветку, но через несколько секунд она выйдет из строя, несмотря на то, что достигла точки останова.
if (!scannedTicketIdSet.contains(ticket.getTicketId())){ //The problem is here
} else {
System.out.println("Worked!");
}
Ошибки
A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 14366 (HeapTaskDaemon), pid 14353 (ytko.coursework)
E/libc: Access denied finding property "persist.log.tag.RefBase"
E/libc: Access denied finding property "log.tag.RefBase"
A/RefBase: decWeak called on 0xed589880 too many times
A/RefBase: decWeak called on 0xed589830 too many times
E/libc: Access denied finding property "persist.log.tag.RefBase"
A/RefBase: decWeak called on 0xed5897c0 too many times
E/libc: Access denied finding property "log.tag.RefBase"
E/libc: Access denied finding property "persist.log.tag"
Access denied finding property "log.tag"
A/RefBase: decWeak called on 0xed589990 too many times