将Appium UI测试集成到Android项目中后,我无法构建项目。
使用Linux和Appium Client 1.8.1和Android仿真器进行测试。
我能够在模拟器上运行测试。它从一个屏幕到另一个屏幕测试我的UI代码,并且测试同样通过。 但是现在的问题是,当我去更新代码以给资源分配ID时。当我再次运行测试时。用户界面未更新。我认为该版本在移动设备中较旧。我首先必须重建我的项目并在模拟器上运行新的APK,否则它将在测试中也使用新的APK。
因此,当我去构建或运行应用程序时。我有问题。 虽然我仍然要运行测试。它有效,但是在以前的apk上。
首先我遇到了这个问题
发现多个文件具有与操作系统无关的路径 'META-INF / DEPENDENCIES'
要解决此问题
packagingOptions { 排除“ META-INF / DEPENDENCIES”}
那之后,我再次运行后遇到了这个问题
发现多个文件具有与操作系统无关的路径 'scripts / get_path_to_default_node.sh'
所以我在包装选项中添加了这一行,从而解决了此问题
排除“ scripts / get_path_to_default_node.sh”
然后遇到了这个问题
发现多个文件具有与操作系统无关的路径 'scripts / getExe.js'
要解决此问题,我在包装选项中添加了此行,使其看起来像
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'scripts/get_path_to_default_node.sh'
exclude 'scripts/getExe.js' }
那之后我遇到了这个问题
编译失败
当我探索这一点时,这些行会以结尾或错误出现:
失败:构建失败,并出现异常。
出了什么问题:任务':app:transformClassesWithDexBuilderForDebug'的执行失败。
com.android.build.api.transform.TransformException:com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException:失败 处理 /home/user/Git/project/app/libs/java-client-6.1.0.jar
尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。
- 获得更多帮助
在15秒钟内失败了39项可执行任务:已执行20项,最新19项
在错误的地方帮我。我在堆栈溢出尝试这里的每个解决方案。 我想运行该应用程序,因此Appium测试也可以正常运行。
对于参考,这是我的build.gradle文件
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.12"
}
}
plugins {
id "net.ltgt.errorprone" version "0.0.12"
}
apply plugin: 'com.android.application'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'io.fabric'
apply plugin: "net.ltgt.errorprone"
apply plugin: 'checkstyle'
apply plugin: 'findbugs'
apply plugin: 'pmd'
android {
compileSdkVersion 26
buildToolsVersion '27.0.3'
lintOptions {
abortOnError false
}
defaultConfig {
applicationId "com.my.app"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main { java.srcDirs = ['src/main/java', 'src/main/java/com/my/app/database'] }
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'scripts/get_path_to_default_node.sh'
exclude 'scripts/getExe.js'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://maven.google.com" }
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
}
}
dependencies {
implementation 'junit:junit:4.12'
implementation('com.twitter.sdk.android:twitter:2.0.0@aar') {
transitive = true;
}
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:design:26.0.2'
implementation 'com.android.support:support-v4:26.0.2'
implementation 'com.facebook.android:facebook-android-sdk:4.+'
implementation 'com.github.filippudak.progresspieview:library:1.0.+'
implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.0'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'de.hdodenhof:circleimageview:2.1.0'
implementation 'com.github.scottyab:showhidepasswordedittext:0.8'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
implementation 'com.github.aakira:expandable-layout:1.6.0@aar'
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
}
implementation 'com.shawnlin:number-picker:2.4.4'
implementation('com.crashlytics.sdk.android:crashlytics:2.9.0@aar') {
transitive = true;
}
implementation 'net.zetetic:android-database-sqlcipher:3.5.9@aar'
implementation 'io.appium:java-client:4.0.0'
implementation files('libs/java-client-6.1.0.jar')
implementation files('libs/selenium-java-3.13.0.zip')
}