Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在我的Android应用程序中导入javax.*吗?_Java_Android_Gradle_Javax.sound.sampled - Fatal编程技术网

无法在我的Android应用程序中导入javax.*吗?

无法在我的Android应用程序中导入javax.*吗?,java,android,gradle,javax.sound.sampled,Java,Android,Gradle,Javax.sound.sampled,我正试图在我的android应用程序中导入一些javax.*类,但我在android Studio中不断遇到编译器错误。 我正在使用UbuntuLinux13.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.

我正试图在我的android应用程序中导入一些
javax.*
类,但我在android Studio中不断遇到编译器错误。 我正在使用UbuntuLinux13.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;
当我尝试运行应用程序,甚至编译activity 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库中。您必须使用Android特定的声音API。请参阅:

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

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

因此,在进行Android开发时:您不能使用完整的JavaSE API:您只能使用dalvik VM(可用)支持的API


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

我已经在Android中处理javax.sound问题两天了。我选择了简单的方法,因为使用javax.sound意味着创建一个我需要的libs的jar文件,如果在它们下面的JNI中有C代码,我必须将其移植到arm。或者我可以使用arm Linux dist,将mp3到wav转换所需的东西从那里带到JNI中。您可以在Android中使用常规jar文件。我使用来自第三方的现成FTP库进行FTP Juju。我的MP3不是很大。因此,我只是将它们转换为分辨率/原始分辨率的WAV。但是上述解决方案对您是可用的。

我也有同样的问题。我通过下载OpenJDK的源代码(例如,从这里:)并将所需的包导出到*.jar文件中,将该文件包含到android应用程序中,解决了这个问题。它对我来说很好。

如果您从Red Hat Developer程序(免费会员)下载OpenJDK,您可以找到整个OpenJDK的.java源文件,包括javax.sound.sampled。我能够使用OpenJDK8调试我的Android应用程序


请注意,并非所有OpenJDK8功能都在Android中可用,因此只包括您需要的类。有关更多信息,请参见

是否检查了类路径?确保已添加系统库。如何添加系统库?顺便说一句,谢谢你的帮助。我不确定Android的开发。但这里是来自Eclipse透视图的路径。。。。右键单击项目资源管理器-->构建路径-->配置构建路径-->库选项卡-->添加库按钮-->选择JRE系统库-->下一步-->完成您试图使用音频类做什么?看起来您想要做的事情可以通过使用Android
AudioTrack
类来实现。请看:不过,我以前在我的应用程序中使用过其他java类。是不是只是
javax.*
?看起来是
javax.sound.sampled
包没有包括在内。顺便说一下,你提到“你不能使用完整的JavaSE API”。然而,我相信这里讨论的依赖性是一个JEE,而不是JavaSE。我希望这个答案说明如何让javax工作,而不是简单地说明为什么它不工作。我们已经知道输入importjavax将不起作用,所以这里没有新的信息。在我看来,必须有一个变通办法或替代解决办法。