68
votes

Jetpack Compose ne peut pas prévisualiser après la mise à jour vers 1.0.0-RC01

Cela ne m'est arrivé que lorsque j'ai mis à jour au 1.0.0-RC01. il dit:

Les classes suivantes n'ont pas pu être trouvées: -Â Androidx.Compose.Ui.tooling.preview.composeViewAdapter (Fix Build Path, Modifier XML, Créer une classe)

 Entrer la description de l'image ici

mon code:

@Composable
@Preview
fun CenterProgress(){
    Box(
        modifier= Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ){
        CircularProgressIndicator(strokeWidth = 3.dp)
    }
}


2 commentaires

Selon un commentaire sur la chaîne #compose de Kotlinang Slack, les aperçus ne fonctionneront pas tant que vous ne pourrez pas passer à l'Arctic Fox RC1, qui n'est malheureusement pas encore disponible. 😞 Ce même commentaire a suggéré que vous pouviez retirer les dépendances d'outillage à beta09 et ils fonctionneraient avec rc01 pour les principales dépendances. Notez que je n'ai pas encore essayé cela, donc je ne sais pas si cela fonctionnerait.


La solution que @Commonsware a mentionnée a fonctionné pour moi sur Bumblebee Canary 3.


6 Réponses :


66
votes

mise à jour 20/07/2021: Téléchargez et utilisez le les plus récents comme pour résoudre le problème


Ils ont divisé certains paquets dans RC01 Mais par commentaire @Commonsware (tous les crédits), il semble qu'il y ait un problème avec la version Android Studio elle-même. Vous avez 2 options:

  • Détrrader vers Beta09 jusqu'à ce que Arcticfox RC1 soit sorti
  • Essayez la solution de contournement suggérée, utilisez comme Arctic Fox Beta 5 en laissant toutes les dépendances composées à 1.0.0-rc01 version et rétrogradation unique .0-beta09 (confirmé par les commentaires).

  • Détails supplémentaires

    Ici, vous pouvez trouver toutes les classes qu'ils ont déplacées 1.0.0-rc01 https://android-review.googlesource.com/clatform/frameworks / support / + / 1739498 Et l'explication sur la raison pour laquelle cela a été décidé.

    En bref, vous pouvez maintenant le faire pour des scénarios optimisés particuliers (qui ne devraient pas être le cas par défaut):

    debugImplementation "androidx.compose.ui:ui-tooling:1.0.0-rc01"
    implementation "androidx.compose.ui:ui-tooling-preview:1.0.0-rc01"
    


    11 commentaires

    J'ai essayé et je comprends que cela ne peut pas accéder à «ComposeViewAdapter»: il est interne dans «androidx.


    C'est étrange ... Avez-vous mis à jour kotlinCompileRextenStensionSion dans le build.gradle? Peut-être pourrait être un problème avec lui-même


    Oui, j'ai tout mis à jour. Lisez le commentaire ci-dessus sur ma question, je pense que c'est le problème


    Oui, je le pense, mis à jour la réponse en conséquence


    Android Studio Artic Fox (2020.3.1) Beta 5 - 2 juillet 2021. Pour moi, cela a fonctionné la solution de contournement, laisser toutes les dépendances composées à la version 1.0.0-RC01 et rétrograder uniquement UI-Tooling à 1.0.0-Beta09.


    Téléchargé aujourd'hui le dernier comme disponible, a créé un nouveau projet et mis à jour des trucs sur RC01, pour pouvoir prévisualiser, j'ai dû utiliser un debugIMPlementation de ui-toolling: 1.0.0-beta07 "; au lieu de celui rc01.


    Ne ressemble pas à fixe en utilisant rc02


    @ Adek111 non, ne fonctionnera pas avant que Arcticfox RC1 ne soit sorti: /


    J'ai trouvé cette réponse très utile. Obtenir une erreur différente: "Androidx.Compose.Ui.tooling.preview.preViewActivity n'est pas une sous-classe d'activité ou un alias" Ceci est avec Artic Fox Beta 5 et compose la version 1.0.0-RC02 pour les autres dépendances de composition, mais devait encore Détrracez la version Androidx.Compose.UI: UI-Toolling Version vers 1.0.0-beta09 pour faire fonctionner l'aperçu.


    Comme RC1 est sorti, le problème me semble résolu


    J'ai eu le même problème dans 2021.1.1 Patch 3 . La version compose est 1.2.0-alpha07 . Downraded Ui-Toolling Aperçu et Debug Implementation à 1.1.1 . Ça a marché. Utilisation de la version Kotlin 1.6.20 .



    3
    votes

    Je l'ai essayé comme le commentaire au-dessus de moi et cela m'a en fait aidé seulement que j'ai dû supprimer la mise en œuvre de:

    lien vers Artic Fox Beta 5:
    https://developer.android.com/studio/preview

    Androidx.Compose.UI: UI-TOOLING-PREVIEW.
    Ma configuration de composition ressemble à ce qui suit:

    android {
    
    def compose_version = '1.0.0-rc01'
    
    
    composeOptions {
      kotlinCompilerExtensionVersion "$compose_version"
    }
    
    dependencies {
      def compose_version = '1.0.0-rc01'
    /**Compose Related*/
    
        implementation "androidx.compose.compiler:compiler:$compose_version"
        implementation "androidx.compose.ui:ui:$compose_version"
        implementation "androidx.activity:activity-compose:1.3.0-rc01"
        implementation "androidx.compose.material:material:$compose_version"
    
        implementation "androidx.compose.ui:ui-tooling:1.0.0-beta09"
    //    Need to comment this two lines to work on artic fox
    //    implementation "androidx.compose.ui:ui-tooling:$compose_version"
    //    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
        /**Accompanist*/
        // Coil
        implementation 'dev.chrisbanes.accompanist:accompanist-insets:0.6.2'
        implementation "com.google.accompanist:accompanist-coil:0.13.0"
        implementation "androidx.compose.runtime:runtime:$compose_version"
        implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
    
        /** Material Icons */
        implementation "androidx.compose.material:material-icons-extended:$compose_version"
    
    
        // Jetpack Compose Integration
        implementation "androidx.navigation:navigation-compose:2.4.0-alpha04"
    }
    
    }
    


    0 commentaires

    3
    votes

    Aux personnes, les gens obtiennent toujours l'erreur lors de la rétrogradation de la bibliothèque de réseaux UI:

    Assurez-vous que vous n'avez pas de bibliothèque qui dépend de l'interface utilisateur: 1.0.0-RC01 Vous pouvez le découvrir en utilisant ./ Gradlew App: dépendances dans votre terminal Android Studio

    Dans mon cas, j'utilise com.google.accompanist: Accompanist-SwipereFresh: 13.0.0 qui dépendent de l'UI-Toolling: 1.0.0-RC01. L'aperçu fonctionne lorsque je rétablisse pour accompagner-swiperefresh: 12.0.0


    1 commentaires

    Les versions d'accompanistes mentionnées sont incorrectes, elles doivent être 0.13.0 et 0.12.0 . En plus de cela, une grande trouvaille! A résolu mes problèmes.



    27
    votes

    Mise à jour : Ce n'est plus nécessaire avec Android Studio Bumblebee | 2021.1.1 Canary 6 et Android Gradle Plugin 7.1.0-alpha06 . Remarque: Canary 4 a déjà résolu ce problème mais a nécessité une version cassée d'AGP. Ceci est désormais également résolu.

    En plus des réponses ci-dessus: voici comment forcer la version de réticulation d'interface utilisateur dans Gradle:

    implementation("androidx.compose.ui:ui-tooling:$compose_version") {
        version {
            // TODO: Remove this when Android Studio has become compatible again
            // Android Studio Bumblebee | 2021.1.1 Canary 3 is not compatible with module ui-tooling 1.0.0-rc01 or higher.
            // The Run Configuration for Composable Previews that Android Studio makes expects a PreviewActivity class
            // in the `androidx.compose.ui.tooling.preview` package, but it was moved in 1.0.0-rc01, and thus causes error:
            // "androidx.compose.ui.tooling.preview.PreviewActivity is not an Activity subclass or alias".
            // For more, see: https://stackoverflow.com/questions/68224361/jetpack-compose-cant-preview-after-updating-to-1-0-0-rc01
            strictly("1.0.0-beta09")
        }
    }
    
    


    0 commentaires

    14
    votes

    Pour mon cas, c'est parce que j'ai quitté ma variante de construction à "Release". Le changer à "Debug" corrige le bug de la classe manquante.

     Entrer la description de l'image ici

    La fonctionnalité de prévisualisation est probablement à partir de la ligne suivante dans build.gradle p >

    debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
    


    0 commentaires

    -1
    votes

    Sur mon cas, où j'ai un module "Système de conception" fournissant toutes les dépendances liées à la composition, j'ai dû ajouter la dépendance suivante:

    implementation("androidx.activity:activity-compose:1.4.0")
    


    0 commentaires