, пожалуйста, помогите. У меня действительно ужасное время с настройкой моего тестирования для студии Android.Android Studio: Тестирование: зависимости библиотек, которые были скомпилированы с использованием java 8 или выше
Я загрузил пример калькулятора, чтобы испытать тестирование кода кумберса из github gumub. https://github.com/cucumber/cucumber-jvm/tree/master/android (некоторые из этих брендов, кстати, очень странные)
Я попытался использовать его в студии Android. Программа отлично работает (yay!). Однако тест не делает. У меня действительно ужасное сообщение, которое просто преследует меня каждый раз, когда я запускаю его.
*To run dex in process, the Gradle daemon needs a larger heap.
It currently has approximately 910 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html
Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.
Error:1 error; aborting
:app:transformClassesWithDexForDebugAndroidTest FAILED
Error:Execution failed for task ':app:transformClassesWithDexForDebugAndroidTest'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_74\bin\java.exe'' finished with non-zero exit value 1*
Его совместимость целевой совместимости и источника я имею проблемы с (не попали в остальные же)
Вот Gradle сборки: как вы можете видеть, я изменил совместимость с 1.7
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "boo.thefoodhunt"
minSdkVersion 16
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 {
debug {
assets.srcDirs = ['src/debug/assets', 'src/androidTest/assets/']
res.srcDirs = ['src/debug/res', 'src/androidTest/assets/features']
}
main { res.srcDirs = ['src/main/res', 'src/androidTest/assets'] }
}
dexOptions {
incremental true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
//TESTING
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support:support-annotations:23.3.0'
//Espresso
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
//Cucumber
androidTestCompile 'info.cukes:cucumber-android:1.2.4'
androidTestCompile 'info.cukes:cucumber-picocontainer:1.2.4'
}
тест, который не в состоянии выполнить:
package boo.thefoodhunt;
import android.test.ActivityInstrumentationTestCase2;
import cucumber.api.CucumberOptions;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
@CucumberOptions(features = "features")
public class CalculatorActivitySteps extends ActivityInstrumentationTestCase2<CalculatorActivity> {
public CalculatorActivitySteps(SomeDependency dependency) {
super(CalculatorActivity.class);
assertNotNull(dependency);
}
@Given("^I have a CalculatorActivity$")
public void I_have_a_CalculatorActivity() {
assertNotNull(getActivity());
}
@When("^I press (\\d)$")
public void I_press_d(final int d) {
switch (d) {
case 0:
onView(withId(R.id.btn_d_0)).perform(click());
break;
case 1:
onView(withId(R.id.btn_d_1)).perform(click());
break;
case 2:
onView(withId(R.id.btn_d_2)).perform(click());
break;
case 3:
onView(withId(R.id.btn_d_3)).perform(click());
break;
case 4:
onView(withId(R.id.btn_d_4)).perform(click());
break;
case 5:
onView(withId(R.id.btn_d_5)).perform(click());
break;
case 6:
onView(withId(R.id.btn_d_6)).perform(click());
break;
case 7:
onView(withId(R.id.btn_d_7)).perform(click());
break;
case 8:
onView(withId(R.id.btn_d_8)).perform(click());
break;
case 9:
onView(withId(R.id.btn_d_9)).perform(click());
break;
}
}
@When("^I press ([+–x\\/=])$")
public void I_press_op(final char op) {
switch (op) {
case '+':
onView(withId(R.id.btn_op_add)).perform(click());
break;
case '–':
onView(withId(R.id.btn_op_subtract)).perform(click());
break;
case 'x':
onView(withId(R.id.btn_op_multiply)).perform(click());
break;
case '/':
onView(withId(R.id.btn_op_divide)).perform(click());
break;
case '=':
onView(withId(R.id.btn_op_equals)).perform(click());
break;
}
}
@Then("^I should see (\\S+) on the display$")
public void I_should_see_s_on_the_display(final String s) {
onView(withId(R.id.txt_calc_display)).check(matches(withText(s)));
}
}
Теперь ив пытался т его:
Error when using a jar in my project
и это: Is it possible to use Java 8 for Android development?
и это: Gradle sourceCompatibility has no effect to subprojects
в обоих Gradle проекта и приложения Gradle. Но я думаю, что это единственное, что приходит с тестированием ... это не поможет и что-то связано с зависимостями, и для этого я довольно застрял. Может кто поможет! заранее спасибо
oh the jdk .... в настоящее время jdk1.8.0_74 и im с помощью андроид-студии 2.1 – Boo