Crash when creating QR code on Android 4
- Android version: 4.2.2
- Phone model: Huawei Ascend Y330
Stacktrace:
2022-04-27 13:10:25.532 4318-4318/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at dev.keiji.util.Base32$Decoder.decode(Base32.java:206)
at dev.keiji.util.Base32.decode(Base32.java:87)
at org.briarproject.mailbox.core.setup.QrCodeEncoder.getHiddenServiceBytes(QrCodeEncoder.kt:76)
at org.briarproject.mailbox.core.setup.QrCodeEncoder.getQrCodeBytes(QrCodeEncoder.kt:53)
at org.briarproject.mailbox.core.setup.QrCodeEncoder.getQrCodeBitMatrix(QrCodeEncoder.kt:46)
at org.briarproject.mailbox.android.ui.MailboxViewModel$setupState$1.invokeSuspend(MailboxViewModel.kt:97)
at org.briarproject.mailbox.android.ui.MailboxViewModel$setupState$1.invoke(MailboxViewModel.kt)
at org.briarproject.mailbox.android.ui.MailboxViewModel$setupState$1.invoke(MailboxViewModel.kt)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2.invokeSuspend(Zip.kt:333)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2.invoke(Zip.kt)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2.invoke(Zip.kt)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invokeSuspend(Combine.kt:79)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invoke(Combine.kt)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invoke(Combine.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.flow.internal.FlowCoroutineKt.flowScope(FlowCoroutine.kt:33)
at kotlinx.coroutines.flow.internal.CombineKt.combineInternal(Combine.kt:22)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1.collect(SafeCollector.common.kt:113)
at kotlinx.coroutines.flow.internal.ChannelFlowOperatorImpl.flowCollect(ChannelFlow.kt:195)
at kotlinx.coroutines.flow.internal.ChannelFlowOperator.collectTo$suspendImpl(ChannelFlow.kt:157)
at kotlinx.coroutines.flow.internal.ChannelFlowOperator.collectTo(ChannelFlow.kt)
at kotlinx.coroutines.flow.internal.ChannelFlow$collectToFun$1.invokeSuspend(ChannelFlow.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)