Digitaler-Impfnachweis / covpass-android

The official CovPass(-Check) Android apps and SDK.
https://digitaler-impfnachweis-app.de
Apache License 2.0
183 stars 59 forks source link

CovPassCheck 1.34.1 crashes when accessing the camera #236

Closed capncrunch closed 1 year ago

capncrunch commented 1 year ago

Avoid duplicates

Technical details

Describe the bug

The current version of CovPassCheck crashes when accessing the camera, i.e. immediately after touching the Scan Now button. This happens before requesting permission to use the camera but happens regardless of whether the permission has been granted or not. The previously released version in the Play Store did not have this issue.

Steps to reproduce the issue

  1. Install the app (doesn't matter if update from the previously released version or new install) on Android 8.0.
  2. Touch the Scan Now button

Expected behaviour

I expect the camera preview window to appear.

Possible Fix

Additional context

pucherd commented 1 year ago

Hello @capncrunch, thank you for reporting it. Can you please provide us more information about the device where the app is crashing (manufacturer, model, ...)? Thank you

capncrunch commented 1 year ago

It's a Sony Experia X Compact (F5321) running the Sony Android build 8.0.0, build number 34.4.A.2.118.

capncrunch commented 1 year ago

I've now updated CovPass Check to 1.36.0 through the Play Store. The issue still persists, tapping the Scan button crashes the app.

MikeMcC399 commented 1 year ago

@capncrunch

I crossed-checked with:

and I had no problem to scan vaccination certificates.

Unfortunately it seems like it is a device-specific issue with your Sony Experia X Compact (F5321).

capncrunch commented 1 year ago

I've now gone back to 1.30.0 using F-Droid and it does not crash when accessing the camera. I've then upgraded to 1.32.0, again using F-Droid, and it crashes again.

So it appears something has changed in how the camera is accessed between those two versions. Maybe that's helpful in pinpointing the reason.

I'm also happy to help debugging this issue by running a debug version on the affected phone.

pucherd commented 1 year ago

Hello @capncrunch, thank you for the offer to help debugging this issue. Can you please use this debug version to provide us some logs? Thank you :)

covpasscheckdemo-1.36.0-1.605.3-debug.apk.zip

Btw, do you have the same issue with CovPass App?

capncrunch commented 1 year ago

OK, I have installed the debug version and confirmed it, too, crashes when accessing the camera. Where do I find the logs you need?

Interestingly, the CovPass app works fine on the same phone and can access the camera and scan certificates without crashing.

pucherd commented 1 year ago

@capncrunch One option would be to use Android Studio and get the logs from Logcat. Are you familiar with it?

capncrunch commented 1 year ago

No, sorry, I'm not an Android developer. I can follow instructions, though. :-)

OK, adb logcat seems to work. I'm not really sure where the interesting bits start, this might be incomplete:

11-23 09:48:34.809  3695  3700 I zygote64: Compiler allocated 4MB to compile void android.view.View.<init>(android.content.Context, android.util.AttributeSet, int, int)
11-23 09:48:34.871  3258  3258 D NuPlayerDriver: NuPlayerDriver(0xef8b4810) created, clientPid(3695)
11-23 09:48:34.873   430   430 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.media.omx@1.0::IOmx in either framework or device manifest, using default transport.
11-23 09:48:34.875  3258  3258 I ExtendedNuUtils: printFileName fd(8) -> /data/app/com.ibm.health.vaccination.app.certchecker.debug-uRR2f4gTKJBOE48VE_KPEg==/base.apk
11-23 09:48:34.878  3258  4276 D GenericSource: FileSource remote
11-23 09:48:34.906  3256  3533 E MM_OSAL : IsWAVADPCMFile: Error unknown format tag 3
11-23 09:48:34.906  3256  3533 I ExtendedExtractor: QTIParser is prefered .. flags 2
11-23 09:48:34.908  3256  3533 D MMParserExtractor: setExtraFlags called with flags 2 for paser instance e3428dc0
11-23 09:48:34.909  3256  3533 D MMParserExtractor: using bigger parser buffers
11-23 09:48:34.909  3256  3533 I ExtendedExtractor: ExtendedExtractor::create 0x79e3428dc0
11-23 09:48:34.909  3256  3533 E MM_OSAL : FileSource::FileSource
11-23 09:48:34.909  3256  3533 E MM_OSAL : FileSource::FileSource m_bEveryThingOK 1
11-23 09:48:34.909  3256  3533 E MM_OSAL : MM_File_Create failed .Efs Error No -1 , File Name /data/mmosal_logmask.cfg , Mode 0
11-23 09:48:34.909  3256  3533 E MM_OSAL : Open or read fail on /data/mmosal_logmask.cfg. Possible permission denied issue. Looking for /data/misc/media/mmosal_logmask.cfg
11-23 09:48:34.910  3256  3533 E MM_OSAL : MM_File_Create failed .Efs Error No -1 , File Name /data/misc/media/mmosal_logmask.cfg , Mode 0
11-23 09:48:34.910  3256  3533 E MM_OSAL : Open or read fail on /data/misc/media/mmosal_logmask.cfg. Possible permission denied issue. Looking for /data/wfd/mmosal_logmask.cfg
11-23 09:48:34.910  3256  3533 E MM_OSAL : MM_File_Create failed .Efs Error No -1 , File Name /data/wfd/mmosal_logmask.cfg , Mode 0
11-23 09:48:34.911  3256  3533 E MMParserExtractor:  FileSourceWrapper::New returned NULL 
11-23 09:48:34.911  3256  3533 E MMParserExtractor: MMParserExtractor::countTracks readMetaData failed 
11-23 09:48:34.911  3256  3533 E MMParserExtractor:   
11-23 09:48:34.911  3256  3533 W MMParserExtractor: readMetaData : metadata parsing is failed 
11-23 09:48:34.911  3258  4276 E MediaExtractor: Trace connect 0xedf87220 0xec246e00
11-23 09:48:34.912  3256  3256 W MMParserExtractor: readMetaData : metadata parsing is failed 
11-23 09:48:34.912  3256  5610 W MMParserExtractor: readMetaData : metadata parsing is failed 
11-23 09:48:34.912  3256  5610 E MMParserExtractor: MMParserExtractor::countTracks readMetaData failed 
11-23 09:48:34.912  3256  5610 E MMParserExtractor:   
11-23 09:48:34.912  3258  4276 E GenericSource: initFromDataSource, source has no track!
11-23 09:48:34.912  3258  4276 E GenericSource: Failed to init from data source!
11-23 09:48:34.912  3258  4275 D NuPlayerDriver: notifyListener_l(0xef8b4810), (100, 1, -2147483648, -1), loop setting(0, 0)
11-23 09:48:34.913  3695  3708 E MediaPlayerNative: error (1, -2147483648)
11-23 09:48:34.918  3695  3695 D MediaPlayer: create failed:
11-23 09:48:34.918  3695  3695 D MediaPlayer: java.io.IOException: Prepare failed.: status=0x1
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.media.MediaPlayer._prepare(Native Method)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.media.MediaPlayer.prepare(MediaPlayer.java:1292)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.media.MediaPlayer.create(MediaPlayer.java:985)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.media.MediaPlayer.create(MediaPlayer.java:956)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at de.rki.covpass.checkapp.scanner.CovPassCheckQRScannerFragment.onViewCreated(CovPassCheckQRScannerFragment.kt:62)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1890)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1808)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1751)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:538)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.os.Handler.handleCallback(Handler.java:789)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.os.Handler.dispatchMessage(Handler.java:98)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.os.Looper.loop(Looper.java:251)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at android.app.ActivityThread.main(ActivityThread.java:6589)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at java.lang.reflect.Method.invoke(Native Method)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
11-23 09:48:34.918  3695  3695 D MediaPlayer:   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
11-23 09:48:34.919  3695  3695 D AndroidRuntime: Shutting down VM
11-23 09:48:34.921  3695  3695 E AndroidRuntime: FATAL EXCEPTION: main
11-23 09:48:34.921  3695  3695 E AndroidRuntime: Process: com.ibm.health.vaccination.app.certchecker.debug, PID: 3695
11-23 09:48:34.921  3695  3695 E AndroidRuntime: java.lang.NullPointerException: create(requireContext(),…heck_certificate_scanned) must not be null
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at de.rki.covpass.checkapp.scanner.CovPassCheckQRScannerFragment.onViewCreated(CovPassCheckQRScannerFragment.kt:62)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1890)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1808)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1751)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:538)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:789)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:98)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:251)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6589)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
11-23 09:48:34.921  3695  3695 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
11-23 09:48:34.931  3494  6345 D ActivityManager: New dropbox entry: com.ibm.health.vaccination.app.certchecker.debug, data_app_crash, 86acc872-17f0-4f74-85d5-335f514eabaa
11-23 09:48:34.932  3494  6345 W ActivityManager:   Force finishing activity com.ibm.health.vaccination.app.certchecker.debug/de.rki.covpass.checkapp.main.MainActivity
pucherd commented 1 year ago

Hello @capncrunch, Thank you very much for the log. We will provide a fix in our next release.

capncrunch commented 1 year ago

I've today installed CovPassCheck version 1.37.0 and can confirm the crash is gone and the app works as intended.