2013-12-09 23 views
51

Ich bin neu in Android-Entwicklung. Kann ich meinen vorhandenen Java-Code, der mit JDK 7 in Android entwickelt wurde, verwenden?Unterstützt Android JDK 6 oder 7

Die Funktionen verwenden xerces dom und xslt und xpathapi. Derzeit, wenn ich Android Eclipse ADT-Umgebung installiert habe, kompilieren diese Funktionen nicht. Ich würde auch gerne wissen, ob ein Android-Gerät selbst JRE 6 oder 7 unterstützt?

+0

Diese Ihnen helfen kann: http: // Stackoverflow.com/fragen/8578441/can-the-android-sdk-arbeiten-mit-jdk-1-7/9567402 # 9567402 – turbo

+0

Danke für die Antwort. Das beantwortet meine Frage immer noch nicht. – user3084351

+1

Während die Frage doppelt markiert ist, die Antworten auf die andere Frage (die selbst ein Duplikat ist) http://stackoverflow.com/questions/14487682/diamond-operator-is-not-supported oder es ist "original" http://stackoverflow.com/questions/17637179/how-to-set-source-1-7-in-android-studio-and-gradle sind nicht nur nicht hilfreich, sondern auch falsch. Wie unten in der am meisten uploaded Antwort gezeigt, werden der Diamant-Operator und viele andere Funktionen jetzt unterstützt. –

Antwort

4

Erstens gibt es einen Unterschied zwischen dem Java JDK und der JRE. Die JRE ist die Java Runtime Environment, während das JDK das Java Development Kit ist. Es ist das JDK, das Sie für die Android-Anwendungsentwicklung zusammen mit dem vorhandenen Android SDK benötigen. Das Android SDK kann entweder JDK 6 oder 7 verwenden, es kann jedoch ONLY die JDK 6-API verwenden.

+0

Danke für die Antwort. Die Android-Eclipse-Umgebung kompiliert nicht meinen Code, der unter regulärer Eklipse mit jdk 6 entwickelt wurde. Ich habe jdk 6-Bibliothek in den Java-Build-Pfad aufgenommen. – user3084351

77

Ursprünglich Android-Entwicklungs-Tools unterstützt nur JDK 6 Funktionen. Aber das wurde geändert, die zuerst von Android Studio 0.3.2 im Oktober 2013 unter: http://tools.android.com/recent/androidstudio032released

Unterstützung für Sprach-Features wie der Diamant-Operator, Multi-catch, versuchen-with-Ressourcen, Strings in Schaltern, etc. Beim Erstellen eines neuen Projekts können Sie eine Quellsprachebene angeben: Beachten Sie, dass Sie alle diese Sprachfeatures nicht nur mit Android KitKat, sondern auch mit älteren Android-Versionen verwenden können! Es gibt eine Ausnahme zu, dass: try-mit-Ressourcen, die 19. minSdkVersion erfordert daher Studio wird Flagge alle Anwendungen in Ihrem Code von Try-with-Ressourcen, wenn Ihr minSdkVersion weniger als 19:

dann ADT-Plugin 22.6 März 2014 finden Sie unter: http://developer.android.com/tools/sdk/eclipse-adt.html

Zusätzliche Unterstützung für Java 7 Sprach-Features wie Multi-catch, versuchen-with-Ressourcen, und der Diamant-Operator. Diese Funktionen erfordern Version 19 oder höher der Build Tools. Try-with-resources erfordert minSdkVersion 19; Der Rest der neuen Sprachfunktionen erfordert minSdkVersion 8 oder höher. Um die neuen Sprachfunktionen nutzen nach ADT Installation 22.6.0, sicherzustellen, dass Sie von Eclipse auf JDK 7 laufen und die Anwendung von Projekteinstellungen ändern JDK 7.

Android ist nicht mit jedem zu 100% kompatibel, zu verwenden, Java SE API-Version, weder 6 noch 8 noch irgendeine. Dies war der Grund für das Gerichtsverfahren gegen Oracle, in dem Google Google beschuldigt hatte, Java zu fragmentieren. Einige APIs können auf Android nicht als Swing implementiert werden; Stellen Sie sich ein Fenster mit einem Schließen-Button auf Android vor! Andere wurden verzögert, aber implementiert: für Beispiel: Charset-Klasse ist in Java SE 1.4 aber implementiert in Android API 9, AutoClosable in Java 7 implementiert in Android API Level 19, um die Implementierung der Try-with-Resources-Sprachfunktion zu ermöglichen. Einige APIs sind vorhanden, aber für verschiedene Zwecke als Konsole.

+4

Wow, vielleicht gibt es sogar die Hoffnung, dass Java-8-Funktionen in nicht allzu ferner Zukunft unterstützt werden. –

+3

@ SimonAndréForsberg Ich hoffe es. –

+0

Während neue ADT neue Sprachfunktionen unterstützt, wird nicht gesagt, ob neue APIs unterstützt werden (z. B. Phaser), was die Frage stellt. – Sheepy

2

Ja, jdk 7 jetzt unterstützt android Starten von Build-Tool 19