it-swarm.com.de

javax. * kann nicht in meine Android-App importiert werden?

Ich versuche, einige javax.*-Klassen in meine Android-App zu importieren, aber ich bekomme immer wieder Compiler-Fehler in Android Studio. Ich benutze Ubuntu Linux 13.04.

Hier sind meine Importe:

import Android.os.Bundle;
import Android.app.Activity;
import Android.view.Menu;
// Here are the imports I am having trouble with:
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.SourceDataLine;

Wenn ich versuche, die App auszuführen oder sogar die Aktivitäts-Java-Datei zu kompilieren, erhalte ich folgende Fehler:

Gradle: error: package javax.sound.sampled does not exist
Gradle: error: package javax.sound.sampled does not exist
Gradle: error: package javax.sound.sampled does not exist

Ich kann dieses Problem einfach nicht verstehen. Jede Hilfe wäre super!

24
Tux

Beachten Sie, dass Sie beim Ausführen einer Android-App keine Java-Bytecodes ausführen oder kompilieren. Google wählt die Java-Sprache (oder zumindest eine Teilmenge davon) als Sprache für die Android-Entwicklung, aber es ist nur die Sprache.

Am Ende ist der kompilierte Java-Code kein Java-Bytecode, sondern Dalvik-Bytecode. (es gibt keine .class-Dateien, sondern .dex-Dateien)

Bei der Android-Entwicklung können Sie also nicht die vollständige JavaSE-API verwenden: Sie sind auf die von dalvik VM unterstützte API beschränkt (verfügbar hier ).

(Beachten Sie beim Durchsuchen dieser API die Version in der oberen rechten Ecke der Seite: Hinzugefügt in API-Ebene X. Sie enthält Informationen zur Android-API-Version, die diese Klasse oder Methode unterstützt.)

34
ben75

Diese Klassen sind nicht in der Android-Bibliothek enthalten. Sie müssen die Android-spezifischen Sounds-APIs verwenden. Siehe: http://developer.Android.com/reference/Android/media/package-summary.html

6
SimonC

Ich hatte das gleiche Problem. Ich habe es gelöst, indem ich Quellen von OpenJDK heruntergeladen habe (zum Beispiel von hier: http://hg.openjdk.Java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/javax/sound ) und Exportieren des erforderlichen Pakets in die * .jar-Datei, um diese Datei in die Android-App aufzunehmen. Es hat gut für mich funktioniert.

2
Oleg Korniienko

Wenn Sie OpenJDK aus dem Red Hat Developer Program (kostenlose Mitgliedschaft) herunterladen, finden Sie die .Java-Quelldateien für das gesamte OpenJDK, einschließlich javax.sound.sampled. Ich konnte meine Android-App mit OpenJDK8 debuggen. 

Bitte beachten Sie, dass nicht alle OpenJDK8-Funktionen in Android verfügbar sind, jedoch nur die Klassen enthalten, die Sie benötigen. Weitere Informationen finden Sie unter https://developer.Android.com/studio/write/Java8-support.html

0
George McKinney