自从我迁移到androidx应用程序以来,启动任务汇编时Jenkins出现错误。这是错误:
Program type already present:
android.support.v4.app.INotificationSideChannel$Stub$Proxy
但是我在Android Studio上没有此错误,我可以毫无问题地构建apk。
因此,我尝试从Google Play服务中排除support-v4模块:
implementation( "com.google.android.gms:play-services-maps:16.0.0"){
exclude module: 'support-v4'
}
implementation ("com.google.android.gms:play-services-location:16.0.0"){
exclude module: 'support-v4'
}
implementation ("com.google.android.gms:play-services-places:16.0.0"){
exclude module: 'support-v4'
}
然后生成了apk,但是在启动应用程序时出现此错误:
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArraySet;
at com.google.android.gms.common.api.internal.c.<init>(Unknown Source:45)
at com.google.android.gms.common.api.internal.c.a(Unknown Source:33)
at com.google.android.gms.common.api.e.<init>(Unknown Source:51)
at com.google.android.gms.common.api.e.<init>(Unknown Source:13)
at com.google.android.gms.location.b.<init>(Unknown Source:8)
at com.google.android.gms.location.f.a(Unknown Source:2)
但是再一次,一切都可以在Android Studio上正常运行,问题只存在于Jenkins,因为迁移到了Androidx。
感谢您的帮助
答案 0 :(得分:2)
Jenkins未使用具有androidx参数的gradle.properties文件:
Mockito.when(myMock.isContractAvailable("0815", Arrays.asList(new String[] {ANYVALUE, "00123", ANYVALUE})).thenReturn(Boolean.TRUE);
这就是为什么在本地计算机上但在Jenkins上工作的原因。