Aller au contenu principal

Foire aux questions


Android Context n'a pas été chargé

********************************************************************************************************
* The Android context has not been loaded by the [androidx.startup.Initializer] plugin. *
* If you encounter this error, please let us know through support so that we can improve the product. *
* To resolve this error, call the [AppConsentSDK.loadContext] method. *
********************************************************************************************************

Si cette erreur apparaît dans vos logs, suivez l'instruction recommandé par le message en appelant la méthode suivante :

AppConsentSDK.loadContext

Une fois fait, r'appelez la méthode AppConsentSDK.initialize comme initialement.

RuntimeException causée par le composant WebView

Caused by: java.lang.RuntimeException:
Using WebView from more than one process at once with the same data directory is not supported.
https://crbug.com/558377 : Current process xx.xxx.xxxx (pid aaaaa), lock owner\"yy.yyy.yyyy (pid bbbbb)

Recherchez dans un premier temps la cause, il se peux que cela arrive au moment que vous intégrez notre SDK (nous utilisons le composant WebView), mais le problème survînt parce que le composant est utilisé par différentes zone mémoire (thread, process).

Plusieurs instances ne peuvent accéder aux même fichiers / dossier stockés sur le device depuis différents Thread (concurence).

Le SDK gère cette problématique, mais il se peux que le SDK n'arrive pas à corriger le problème si par exemple, une librairie tierce utilise le composant WebView avant même que le SDK ne s'initialise.

Au quel cas, il faudra gérer cette partie par vous même en définissant un nouveau répertoire d'utilisation pour votre WebView (https://crbug.com/558377) grâce à cette méthode :

WebView.setDataDirectorySuffix(String)

Duplicate classes

Lors de la compilation de votre projet, vous rencontrez une erreur venant de la librairie kotlin.stdlib expliquant que vous avez une duplication de classe ?

Caused by: java.lang.RuntimeException: Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.20-dev-78 (org.jetbrains.kotlin:kotlin-stdlib:1.8.20-dev-78) and kotlin-stdlib-jdk8-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30)

Rajoutez ce bloque de configuration dans votre build.gradle de votre module app:

dependencies {
...
modules {
module("org.jetbrains.kotlin:kotlin-stdlib-jdk7") {
replacedBy("org.jetbrains.kotlin:kotlin-stdlib", "kotlin-stdlib-jdk7 is now part of kotlin-stdlib")
}
module("org.jetbrains.kotlin:kotlin-stdlib-jdk8") {
replacedBy("org.jetbrains.kotlin:kotlin-stdlib", "kotlin-stdlib-jdk8 is now part of kotlin-stdlib")
}
}
...
}

Erreur de décompilation

Si vous utilisez une version de gradle antérieur à la version 8, il ce peux que lors de l'intégration de la CMP (depuis la version 4.X.X) une erreur de ce type apparaîsse:

Error: com.android.tools.r8.internal.nc: Sealed classes are not supported as program classes

C'est une erreur "normal" car gralde 7 n'est pas capable de décompiler certaines classe (Gradle 8 impose de migrer vers JAVA 17).

Une solution s'offre à vous, le temps de vous permettre de faire la migration c'est de rajouter le plugin R8 à votre projet.

La référence de ce patch vient d'une Issue Google et la solution est celle-ci:

pluginManagement {
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:8.2.20-dev")

}
}
}