Après la mise à jour de Compose alpha-11
vers alpha-12
(ou bêta-01
), je reçois ce crash chaque fois que j'ouvre un Activité ou fragment qui a des vues composées.
J'utilise AppCompatActivity
qui implémente LifeCycleOner
, c'est donc extrêmement étrange. >
mon code semble vraiment simple:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MaterialTheme { Text(text = "compose") } } } }
update
, apparemment, vous devez utiliser AndroidX. AppCompat: AppCompat: 1.3.0-beta01
6 Réponses :
Comme aucune des solutions n'a fonctionné pour moi, je suis ici pour vous faciliter la journée (en supposant que vous avez la configuration que j'avais pour mon projet).
Donc, voici l'activité qui ne soit pas lancée après Mise à niveau vers beta01
:
class AuthenticationActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(View(this)) // <-- here's the newly introduced line supportFragmentManager.beginTransaction() .replace(android.R.id.content, SignInFragment()) .commit() } }
Comme vous pouvez le voir, il n'y a pas setContentView (...)
ici. Après avoir analysé le StackTrace, j'ai vu que settrag (r.id.view_tree_lifecycle_owner, lifecycleowner)
n'a pas été exécuté, ce qui a donné getTag ()
pour renvoyer null - d'où l'exception.
s'avère settrag (...)
s'appelle lorsqu'une setContentView ()
Les surcharges sont effectuées.
Ainsi, Le correctif facile pour ma configuration consistait à introduire un SetContentView redondant (voir (this))
qui définirait en interne le propriétaire du cycle de vie:
class AuthenticationActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) supportFragmentManager.beginTransaction() .replace(android.R.id.content, SignInFragment()) .commit() } }
Passer de AppCompatActivity
à fragmentActivity
a résolu ce problème dans mon cas.
Cela a fonctionné pour moi après avoir essayé de nombreuses suggestions différentes. J'aimerais pouvoir vous donner plus de flèches. Merci.
Essayez de mettre à jour la dépendance de la version appcompat
vers rc01
.
Cela a résolu le problème pour moi.
Implémentation 'AndroidX.AppCompat: AppCompat: 1.3.0-RC01'
Mise à niveau AndroidX.AppCompat: AppCompat
depuis 1.2.0
à 1.3.1
Résolution du problème pour moi.
TLDR: Mise à jour
implementation "androidx.appcompat:appcompat:1.3.1"
Pour moi, c'était parce que je n'avais pas inclus la bibliothèque AppCompat et mon activité héritée de activité au lieu de appcompatativité . Le problème résolu en ajoutant la bibliothèque:
class MyActivity: AppCompatActivity() { ... }
et sous-classé à partir de AppCompatActivity :
implementation("androidx.appcompat:appcompat:1.3.0")
Apparemment, vous devez utiliser AndroidX.AppCOMPAT: AppCompat: 1.3.0-Beta01
J'ai toujours le même problème avec
BottomSheetDialogFragment
. La mise à jour de la version 1.3.0-beta01 n'a pas aidé. Savez-vous où se trouve le problème?@Ibasek est probablement lié à ce bug isetracker.google.com/issues/180691023
@Clapalucian Solution a fonctionné pour moi. Ajout d'implémentation
"AndroidX.Fragment: Fragment-KTX: 1.4.0-snapshot"
à votre modulebuild.gradle
et ajoutermaven {url 'https: / /Androidx.dev/snapshots/builds/7166224/artifacts/rep opostory '}
à la liste des référentiels