Android Studio: Prüfung: Library-Abhängigkeiten kompiliert wurden, die mit java 8 oder höher
bitte helfen. Ich bin eine wirklich schreckliche Zeit mit der Einrichtung meines Tests für android studio.
Heruntergeladen habe ich das Rechner-Beispiel zu üben cumcumber code-Tests aus der Gurke github. https://github.com/cucumber/cucumber-jvm/tree/master/android (einige dieser Marken, die btw sehr strangley benannt)
Versuchte ich es mit Android studio. Das Programm läuft perfekt (yay!). Der test jedoch nicht. Ich habe eine wirklich schreckliche Nachricht, die nur verfolgt mich jedes mal, wenn ich ihn laufen.
*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*
Dessen Ziel die Kompatibilität und die source-Kompatibilität ich habe ein Problem mit (nicht haben, um den rest noch)
Hier ist das gradle-build: wie Sie sehen können, habe ich geändert, ist die Verträglichkeit 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'
}
Den test, der fehlschlägt, um zu laufen:
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)));
}
}
Nun ich habe dies versucht:
Fehler bei der Verwendung von einem jar in mein Projekt
und so:
Ist es möglich mit Java 8 für die Android-Entwicklung?
und so:
Gradle sourceCompatibility hat keine Auswirkungen auf die Teilprojekte
in das Projekt gradle und die app gradle. Aber ich bin am überlegen, wie seine kommen nur mit dem testen...das wird nicht helfen und Ihr etwas zu tun mit den Abhängigkeiten und dafür bin ich ziemlich festgefahren. Kann mir jemand helfen! vielen Dank im Voraus
- oh das jdk.... derzeit jdk1.8.0_74 und im mit android studio 2.1
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie eine Abhängigkeit, unklar, die kompiliert wird, die für Java 8 wird und Sie angegeben haben Java 7 in deinem build.
Die Fehlermeldung
This is caused by library dependencies that have been compiled using Java 8 or above.
ist Sie der Schlüssel hier.Mein Ansatz wäre, ändern Sie die Java-version 8. Wenn das nicht den trick tun, reduzieren Sie das problem. Das heißt, beginnen Sie mit einem neuen Projekt, ohne Abhängigkeiten, und den code und fügen von sehr kleinen teilen bis ich das gefunden habe, was verursacht Fehler oben.
Ist, gelten Gallen Recht:
"Ein Komplexes system, das funktioniert, ist ausnahmslos gefunden zu haben sich von einem einfachen system, das funktioniert. Ein Komplexes system von Grund auf neu entwickelt nie funktioniert und kann nicht gepatcht werden bis es funktioniert hat. Sie haben zu Beginn über ein funktionierendes einfaches system. – John Gall (1975, S. 71)"
https://en.wikipedia.org/wiki/John_Gall_%28author%29
Ok, für jeden eine, die das gleiche problem haben. Ich sussed es! (Denke ich!) seinen Vorsprung auf andere Probleme mit dem Programm aber zumindest habe ich den test ausgeführt und seine Kommunikation mit dem Gerät und Lesen Sie die tests, ohne paddy. Die tests sind jedoch ein ganz neues problem (für eine andere Frage, an einem anderen Tag) ein Neues problem, wenn jemand interessiert ist:
ich vermute, dass Ihr etwas zu tun mit dem nicht alle Tasten, die nicht in der Ansicht (nicht mein design! FYI), so passen wir diese morgen.
Nun auf die Lösung(ish)
https://github.com/cucumber/cucumber-jvm/issues/893: Kommentar von programmerdave am 18 Nov 2015 geholfen mit dem gradle-setup.
Dieser brachte eine ganz neue Fehler!
Schaffte es aber, dies zu beheben, sehr schnell. vielen Dank an diese Jungs
https://code.google.com/p/android/issues/detail?id=194980
Sowieso anscheinend zwei verschiedene Probleme, die verheerenden Schaden verursacht (einen Tag und eine Hälfte).
Hier ist das gradle für den Calkulator demo (link in Frage) - es fühlt sich alles ein bisschen chaotisch und wenn jemand eine schöne saubere Lösung bitte lassen Sie mich wissen,
Also alles in allem scheint es zu sein, dass jvm-deps......nun, wer wusste