android - 我在 Gradle 托管设备设置中会遇到什么问题?
问题描述
引入了 Gradle 托管设备的新功能(例如,请参见此处:https ://developer.android.com/studio/preview/features?hl=fr )
设置似乎很简单,只需将几行复制到模块级build.gradle
文件中,一切就可以正常工作了。
可悲的是,我的情况并非如此,我努力寻求一些建议,拜托。代码是红色的,脚本没有成功。查看我的build.gradle.kts
文件:
带下划线的 ManagedVirtualDevice 显示以下错误:
我的 Android Studio 版本是Android Studio Bumblebee | 2021.1.1 Canary 11 Build #AI-211.7628.21.2111.7676841,于 2021 年 8 月 26 日构建。
同步 Gradle 显示了这一点:
org.gradle.internal.exceptions.LocationAwareException: Build file '/*****/app/build.gradle.kts' line: 112
Script compilation errors:
Line 112: pixel2api29 (com.android.build.api.dsl.ManagedVirtualDevice) {
^ Unresolved reference: pixel2api29
Line 112: pixel2api29 (com.android.build.api.dsl.ManagedVirtualDevice) {
^ Classifier 'ManagedVirtualDevice' does not have a companion object, and thus must be initialized here
Line 114: device = "Pixel 2"
^ Unresolved reference: device
Line 115: apiLevel = 29
^ Unresolved reference: apiLevel
Line 117: systemImageSource = "google"
^ Unresolved reference: systemImageSource
Line 118: abi = "x86"
^ Unresolved reference: abi
6 errors
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost$compileSecondStageOf$cacheDir$1.invoke(Interpreter.kt:666)
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost$compileSecondStageOf$cacheDir$1.invoke(Interpreter.kt:387)
at org.gradle.kotlin.dsl.provider.CompileKotlinScript.execute(KotlinScriptEvaluator.kt:375)
at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
...
哪个
解决方案
刚刚遇到了同样的问题 - 您需要实例化一个ManagedVirtualDevice
对象并对其进行配置,然后再将其添加到您的设备列表中:
import com.android.build.gradle.internal.dsl.ManagedVirtualDevice
testOptions {
devices {
add(
ManagedVirtualDevice("pixel2api30").apply {
device = "Pixel 2"
apiLevel = 30
systemImageSource = "aosp-atd"
abi = "x86"
}
)
}
}
请注意,导入与 Google 文档所说的略有不同——在他们的示例中,它们传递的是接口,而不是实现。
推荐阅读
- matlab - 如何将某个簇大小以上的“开”像素簇更改为“关”像素
- c++ - C++ 应用程序:将值从表单传递到主窗口私有变量
- django-rest-framework - 如何在 django web 上显示图像?
- javascript - 带有子对象的Javascript递归JSON数组
- algorithm - 确定以下代码的运行时间(内部循环递归)
- android - Cordova - Android - 获取位置时的通知和图标
- go - Golang 无法将 XML 映射到 Struct
- python - 如何减少协方差函数的输出时间
- selenium-webdriver - vue-cli3+electron+chromedriver+selenium-webdriver 找不到元素
- c# - 每次按喜欢或不喜欢按钮时如何使页面不刷新?