2013-05-28 143 views
21

我想在我的android應用中導入一些javax.*類,但我一直在Android Studio中收到編譯器錯誤。 我正在使用Ubuntu Linux 13.04。無法在我的Android應用程序中導入javax。*?

這裏是我的進口:

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 

我只是想不通解決這個問題。任何幫助都是極好的!

+0

你檢查了你的類路徑嗎?確保你已經添加了你的系統庫。 – Smit

+0

我該如何在系統庫中添加?順便提一下,感謝您的幫助。 – Tux

+0

我不確定適用於Android開發。右鍵單擊Project Explorer - > Build Path - > Configure Build Path - > Library選項卡 - > Add Library按鈕 - >選擇JRE System Library - > Next - >完成 – Smit

回答

32

請注意,當您運行Android應用程序時:不要在標準JVM/JDK上運行/編譯它,您甚至不執行java字節碼。谷歌選擇Java語言(或至少它的一個子集)作爲開發Android的語言,但它只是語言。

最後編譯的java代碼不是java字節碼,但是這是dalvik字節碼。 (沒有.class文件,但是.dex文件)

因此,在進行Android開發時:不能使用完整的JavaSE API:僅限於dalvik VM支持的API(可用的here)。

(請注意,當你瀏覽這個API在頁面的右上角提防的版本:在API級別X它會告知Android的API版本支持了類或方法)

-1

我一直在研究Android中的javax.sound問題兩天。我採取了簡單的方法,因爲使用javax.sound意味着創建我需要的libs的jar文件,並且如果JNI下面有C代碼,我將不得不將它移植到arm。或者我可以拿一個Linux的dist,帶上我需要的mp3來從那裏轉換到JNI。您可以在Android中使用常規的jar文件。我使用來自第三方的FTP Juju的現成FTP庫。我的mp3不是很大。所以我只是將它們轉換成了res/raw中的wav。但上述解決方案可供您使用。

0

如果您從Red Hat Developer Program(免費成員資格)下載OpenJDK,則可以找到包括javax.sound.sampled在內的整個OpenJDK的.java源文件。我能夠使用OpenJDK8調試我的Android應用程序。

請注意,並非所有OpenJDK8功能都可在Android中使用,因此只包含您需要的類。欲瞭解更多信息,請參閱https://developer.android.com/studio/write/java8-support.html

相關問題