Closed giga89 closed 1 year ago
Buonasera @giga89
ho un problema quando la uso in debug (build variants debug sia per decoder che per dgc-sdk). Quando chiamo la vm.decode ho il seguente crash: [...] PID: 20463 java.lang.NullPointerException at it.ministerodellasalute.verificaC19sdk.data.VerifierRepositoryImpl.getCertificate(VerifierRepositoryImpl.kt:160)
La runtime exception è relativa a key e viene sollevata infatti in VerifierRepositoryImpl
nel richiamo della funzione getCertificate
:
val key = db.keyDao().getById(kid)
return if (key != null) keyStoreCryptor.decrypt(key.key)!!
.base64ToX509Certificate() else null
Se peraltro non riscontrassi la medesima runtime exception in release variant, ma solo in debug, potrebbe essere una casistica simile a quella della issue #88.
In tale issue veniva riscontrata una simile exception iniziale, in virtù di errata gestione garbage collection, che comportava la non-chiusura corretta dei sync VerifierRepositoryImpl: Cert KID verified
& del DB Room per tabella KID al 1° avvio (completati OK poi a riapertura app).
Situazione, che non veniva riscontrata invece in release build del medesimo progetto specifico, in virtù di minore overhead in esecuzione. Tantomeno in debug build della whitelabel-app VerificaC19, considerando la natura basilare del suo codice app (ossia di sola interfaccia/UI - senza ulteriori funzioni).
Potresti quindi riverificare la situazione con le seguenti 2 condizioni :
Per quanto riguarda app, che integrano DGC-SDK, è già sufficiente l'aggiunta del set predefinito di policy di controllo al constructor dell'application class -> prendendo ad esempio la whitelabel-app VerificaC19 :
[...]
import android.os.StrictMode
[...]
override fun onCreate() {
if (BuildConfig.BUILD_TYPE == "debug") {
StrictMode.enableDefaults()
}
super.onCreate()
setWorkManager()
}
Ciò consente infatti di vedere da logcat anche situazioni d'errore relative a gestione/leak della memoria, che in log base compaiono però come warning con indicazione generica.
In questo modo dovresti avere un quadro preciso per gli eventi W/E anteriori all'exception con il tuo progetto.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Buonasera a tutti, sto usando l'SDK 1.1.1 per la mia app Android e ho un problema quando la uso in debug (build variants debug sia per decoder che per dgc-sdk). Quando chiamo la vm.decode ho il seguente crash:
--------- beginning of crash 2022-01-05 17:27:27.119 20463-20463/com.zucchetti.AccessC19 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.zucchetti.AccessC19, PID: 20463 java.lang.NullPointerException at it.ministerodellasalute.verificaC19sdk.data.VerifierRepositoryImpl.getCertificate(VerifierRepositoryImpl.kt:160) at it.ministerodellasalute.verificaC19sdk.model.VerificationViewModel$decode$1$1.invokeSuspend(VerificationViewModel.kt:185) 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)
Cosa potrebbe essere? Grazie