javax。*不能在我的Android应用程序中导入?

我想在我的android应用程序中导入一些javax.*类,但是我一直在Android Studio中收到编译器错误。 我正在使用Ubuntu Linux 13.04。

这是我的import:

 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 

我只是无法弄清楚这个问题。 任何帮助都是极好的!

请注意,当您运行Android应用程序时:您不会在标准的JVM / JDK上运行/编译它,甚至不执行java字节码。 谷歌selectJava语言(或至less它的一个子集)作为开发Android的语言,但它只是语言。

最后编译的java代码不是java字节码,但是这是dalvik字节码。 (没有.class文件,但.dex文件)

因此,在进行Android开发时:不能使用完整的JavaSE API:仅限于dalvik VM支持的API(可在此处获得 )。

(请注意,当您浏览此API时,请注意页面右上angular的版本: 在API级别X中添加,它会通知您有关支持该类或方法的Android-API版本)

这些类不包含在Android库中。 你必须使用Android特定的声音API。 请参阅: http : //developer.android.com/reference/android/media/package-summary.html

我有同样的问题。 我已经通过下载OpenJDK的源代码解决了它(例如,从这里http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/javax/sound )和将所需的软件包导出到* .jar文件中以将该文件包含到android应用程序中。 它对我来说工作得很好。

我一直在研究Android中的javax.sound问题两天。 我采取了简单的方法,因为使用javax.sound将意味着创build我需要的库的jar文件,如果在它下面的JNI中有C代码,我将不得不移植到arm。 或者我可以拿一个Linux的dist,并把我所需要的mp3转换成wav到那个JNI。 您可以在Android中使用常规的jar文件。 我使用来自第三方的FTP Juju的现成的FTP库。 我的MP3不是很大。 所以我只是把它们转换成了WAV格式。 但是,上述解决scheme可供您使用。