我已经在测试包中编写了这个测试,用于测试一个retrofit类,但是即使在测试星之前,除了未知的“常量”之外@Config,还会显示此错误:@Config(constants = BuildConfig.class, sdk =21, manifest="app/manifests/AndroidManifest.xml")@RunWith(RobolectricTestRunner.class)public class MultiFactorAPITest {private MainActivity mainActivity;@Mockprivate MultiFactorAPI mockMultiFactorAPI;@Captorprivate ArgumentCaptor<Callback<List<ValidatePhoneUserResponse>>> callbackArgumentCaptor;@Beforepublic void setUp() { MockitoAnnotations.initMocks(this); ActivityController<MainActivity> controller = Robolectric.buildActivity(MainActivity.class); mainActivity = controller.get(); // Then we need to swap the retrofit api impl. with a mock one // We store our Retrofit api impl as a static singleton in class RestClient, hence: RestClient.setApi(mockMultiFactorAPI); controller.create();}错误是:现在必须显式声明注释处理器。发现编译类路径的以下依赖项包含注释处理器。请将它们添加到 annotationProcessor 配置中。- auto-service-1.0-rc4.jar (com.google.auto.service:auto-service:1.0-rc4) 或者,设置 android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true 以继续之前的行为。请注意,此选项已弃用,将来会被删除。有关详细信息,请参阅https://developer.android.com/r/tools/annotation-processor-error-message.html 。我添加了这些行来漱口:dependencies { implementation 'org.robolectric:robolectric:4.3' implementation "org.mockito:mockito-core:1.10.19" implementation 'org.hamcrest:hamcrest-library:1.1'}在gradle.Madule:android{testOptions { unitTests { includeAndroidResources = true }} }在 gradle.app 中:dependencies{ classpath 'org.robolectric:robolectric-gradle-plugin:1.0.1'}在 gradle.propertice 中:android.enableUnitTestBinaryResources=trueandroid.enableAapt2=false
1 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
通过将此代码放入我的 app.gradle 解决了我的问题:
dependencies{
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.okhttp3:mockwebserver:3.6.0'
}
和
1) 在 Android Studio 中找到 .gradle 文件夹的位置,转到“文件”->“设置”,然后在搜索框中键入“gradle”。您将能够在那里选择正确的路径
2)删除.gradle目录(我的位置是C:\Users\UserName.gradle),重启android studio。它会自动创建一个新的。
来自Android 工作室:构建项目错误 - 无法完成 Gradle 执行
添加回答
举报
0/150
提交
取消