
我已经下载了计算器示例,从黄瓜github练习cumcumber代码测试. https://github.com/cucumber/cucumber-jvm/tree/master/android(其中一些品牌btw非常扼流自命名)
我试着在AndroID工作室使用它.该程序运行完美(耶!).然而,测试没有.我有一个非常可怕的消息,每次我运行时都会困扰我.
*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.HTMLError: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 FailedError: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 version@R_502_6889@ "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和app gradle中.但我正在考虑它是唯一的测试…这些将无济于事,它与依赖关系有关,因此我很困难.谁能帮忙!提前致谢
解决方法 您有一个依赖项,不清楚哪个是为Java 8编译的,并且您已在构建中指定了Java 7.错误消息这是由使用Java 8或更高版本编译的库依赖项引起的.他们是关键吗?
我的方法是将Java版本更改为8.如果不能解决问题,请减少问题.也就是说,从没有依赖项和代码的新项目开始,添加非常小的部分,直到找到导致上述错误的内容.
也就是说,应用galls Law:
“一个复杂的系统总是被发现从一个简单的系统发展而来.一个从头开始设计的复杂系统永远不会工作,无法修补以使其工作.你必须重新开始使用一个简单的系统. – John加尔(1975,p.71)“
@L_502_5@
总结以上是内存溢出为你收集整理的Android Studio:测试:使用java 8或更高版本编译的库依赖项全部内容,希望文章能够帮你解决Android Studio:测试:使用java 8或更高版本编译的库依赖项所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)