Подтвердить что ты не робот

Javax. * нельзя импортировать в приложение для Android?

Я пытаюсь импортировать некоторые классы javax.* в мое приложение для Android, но я продолжаю получать ошибки компилятора внутри Android Studio. Я использую Ubuntu Linux 13.04.

Вот мой импорт:

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;

И когда я пытаюсь запустить приложение или даже скомпилировать java файл активности, я получаю следующие ошибки:

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

Я просто не могу понять эту проблему. Любая помощь будет потрясающей!

4b9b3361

Ответ 1

Помните, что при запуске приложения для Android: вы не запускаете/не компилируете его на стандартном JVM/JDK, вы даже не запускаете java-байт-код. Google выбирает язык Java (или, по крайней мере, его подмножество), как язык для разработки Android, но это только язык.

В конце скомпилированный Java-код не является java-байт-кодом, но это байт-код dalvik. (нет файлов .class, но .dex)

Итак, при разработке Android: вы не можете использовать полный API JavaSE: вы ограничены API, поддерживаемым dalvik VM (доступный здесь).

(Обратите внимание, что при просмотре этого API остерегайтесь версии в правом верхнем углу страницы: Добавлен в уровень API X. Он информирует вас об версии Android-API, поддерживающей этот класс или метод)

Ответ 3

У меня была та же проблема. Я разрешил его, загрузив источники OpenJDK (например, отсюда: http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/javax/sound) и экспортирует требуемый пакет в файл *.jar включить этот файл в приложение для Android. Это сработало для меня отлично.

Ответ 4

Я работаю над проблемой javax.sound в Android в течение двух дней. Я выбрал простой путь, потому что использование javax.sound означало бы создание файла jar из библиотек, которые мне нужны, и если бы в них содержался код C в JNI, мне пришлось бы переносить это на руку. Или я мог бы взять под руку Linux-дистрибутив и принести то, что мне нужно для конвертации mp3 в wav оттуда в JNI. Вы можете использовать обычные файлы jar в Android. Я использую готовые FTP-библиотеки от сторонних разработчиков для FTP Juju. Мои mp3 были не очень большими. Поэтому я просто преобразовал их в wavs в res/raw. Но вышеупомянутые решения доступны вам.