You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose预览报错:PreviewActivity路径错误求助

解决Compose预览中PreviewActivity路径错误的方案

针对你遇到的PreviewActivity路径识别错误问题,可以从以下几个方向排查修复:

1. 对齐Gradle插件(AGP)与Compose版本

Compose 1.5.3需要搭配AGP 8.1.0及以上版本使用,低版本AGP会导致工具链的类路径识别异常。打开项目根目录的build.gradle(或build.gradle.kts)检查AGP版本:

// 根build.gradle中的buildscript块
buildscript {
    dependencies {
        classpath "com.android.tools.build:gradle:8.1.0" // 确保版本≥8.1.0
    }
}

2. 验证依赖配置的正确性

确认ui-tooling依赖仅在debug环境生效,且与ui-tooling-preview版本完全一致:

// 模块级build.gradle
implementation "androidx.compose.ui:ui-tooling-preview:1.5.3"
debugImplementation "androidx.compose.ui:ui-tooling:1.5.3"

避免出现版本不一致,或误将ui-tooling写成implementation的情况。

3. 深度清理并重建项目

除常规清除缓存,执行以下步骤:

  • 运行Gradle任务:./gradlew clean(Windows环境用gradlew clean)
  • 点击Android Studio菜单File > Invalidate Caches... > Invalidate and Restart
  • 重新同步项目后再尝试预览

4. 检查Manifest合并结果

打开app/build/intermediates/merged_manifests/debug/AndroidManifest.xml,确认是否存在PreviewActivity的声明:

<activity
    android:name="androidx.compose.ui.tooling.PreviewActivity"
    android:exported="true"
    android:theme="@style/Theme.AppCompat">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

如果没有该声明,可能是Hilt或其他插件干扰了Manifest合并,可临时在debug目录的AndroidManifest.xml中手动添加(仅用于排查,不建议长期保留)。

5. 排除自定义构建规则干扰

检查是否有自定义Gradle脚本或插件,比如移除了debug环境下的tooling依赖,或修改了Manifest合并规则,导致PreviewActivity未被正确打包。


问题原描述

运行Composable组件预览时遇到如下错误:

Error while executing: am start -n "com.site.app/androidx.compose.ui.tooling.preview.PreviewActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --es composable com.site.app.ui.MainActivity.MainAppPreview
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.site.app/androidx.compose.ui.tooling.preview.PreviewActivity (has extras) }
Error type 3
Error: Activity class {com.site.app/androidx.compose.ui.tooling.preview.PreviewActivity} does not exist.

Error while Launching activity
Failed to launch an application on all devices

经检查,PreviewActivity并不在androidx.compose.ui.tooling.preview包下,而是位于androidx.compose.ui.tooling包中。清除缓存无法解决问题。项目配置如下:

  • compileSdk版本为34(因使用Navigation 2.7.4)
  • Compose版本1.5.3
  • 使用Hilt依赖注入
  • 引入依赖:implementation "androidx.compose.ui:ui-tooling-preview:1.5.3"
  • 引入依赖:debugImplementation "androidx.compose.ui:ui-tooling:1.5.3"
    怀疑问题出在Gradle版本相关配置上,旧项目中路径正常且预览功能正常。

内容的提问来源于stack exchange,提问作者Ankush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:42:50