2

运行测试createComposeRule并命中堆栈跟踪(省略不相关部分):

java.lang.RuntimeException: Could not launch activity
at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:495)
...
Caused by: java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.app.package.name.here/android.app.Activity }
...
4

3 回答 3

17

OP 问题是关于使用createComposeRule()哪个不需要自定义活动(它ComposeActivity在引擎盖下使用)。

在这种情况下,您需要在 gradle 文件中包含以下内容:

    debugImplementation "androidx.compose.ui:ui-test-manifest:1.0.0-beta05"

如果你看一下那个包的内容,它只是一个AndroidManifest.xml带有<activity/>.androidx.activity.ComponentActivity

于 2021-04-27T22:15:27.770 回答
3

您需要在 Compose UI 测试中声明一个Activity名称android.app.ActivityAndroidManifest.xml用于托管内容。<application>在您的标签中添加以下内容:

<activity android:name="android.app.Activity" android:theme="@style/your_app_theme_here"/>

替换your_app_theme_here为您的应用程序中存在的主题。

于 2020-02-20T23:45:03.467 回答
1

您需要添加

<activity android:name="androidx.activity.ComponentActivity" />

到你的清单。

于 2021-05-02T09:03:09.573 回答