32

Android アプリにいくつかのクラスをインポートしようとしていjavax.*ますが、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

私はこの問題を理解できません。どんな助けでも素晴らしいでしょう!

4

5 に答える 5

40

Android アプリを実行するときは、標準の JVM/JDK で実行/コンパイルしないことに注意してください。Java バイトコードも実行しません。Google は Android 開発を行う言語として Java 言語 (または少なくともそのサブセット) を選択していますが、それは単なる言語です。

最後に、コンパイルされた Java コードは Java バイトコードではありませんが、これは dalvik バイトコードです。(.class ファイルはありませんが、.dex ファイルがあります)

そのため、Android 開発を行う場合: 完全な JavaSE API を使用することはできません: dalvik VM (ここで入手可能) によってサポートされる API に制限されます。

(この API を参照するときは、ページの右上隅にあるバージョンに注意してください: API レベル X で追加されました。それは、そのクラスまたはメソッドをサポートする Android-API バージョンについて通知します)

于 2013-05-29T10:43:34.577 に答える
8

これらのクラスは、Android ライブラリには含まれていません。Android 固有のサウンド API を使用する必要があります。参照: http://developer.android.com/reference/android/media/package-summary.html

于 2013-05-28T23:55:36.683 に答える
5

私も同じ問題を抱えていました。OpenJDKのソースをダウンロードして解決しました(たとえば、ここから:http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/javax/sound)および必要なパッケージを *.jar ファイルにエクスポートして、そのファイルを Android アプリに含めます。それは私にとってはうまくいきました。

于 2015-01-28T16:15:30.157 に答える
-3

Android の javax.sound の問題に 2 日間取り組んできました。javax.sound を使用すると、必要なライブラリの jar ファイルを作成することになり、それらの下に JNI に C コードがある場合は、それを移植して武装する必要があるため、簡単な方法を取りました。または、arm Linux dist を使用して、mp3 から wav への変換に必要なものをそこから JNI に取り込むこともできます。Android では通常の jar ファイルを使用できます。FTP Juju には、サードパーティの市販の FTP ライブラリを使用しています。私のmp3はそれほど大きくありませんでした。そのため、それらを res/raw の wav に変換しました。しかし、上記の解決策は利用可能です。

于 2013-05-29T17:50:05.143 に答える