Android 第三方 Jar 的 Link 與問題:Unable to execute dex: Java heap space的解決方法
如果工程運(yùn)行時(shí)產(chǎn)生如下的錯(cuò)誤:
03-11?16:00:10.363:?E/AndroidRuntime(25068):?java.lang.RuntimeException:?Unable?to?instantiate?service?com.xxxx.music.MediaPlayerService:?java.lang.ClassNotFoundException:?Didn't?find?class?"com.xxxx.music.MediaPlayerService"?on?path:?/data/app/com.jia.yyyy.LeoMediaPlayer.apk
由說明 MediaPlayerService 的實(shí)現(xiàn)沒有整合到 apk 包中。
根據(jù)在 Eclipse 中調(diào)試時(shí)出錯(cuò)時(shí)的提示,就可以看到 MediaPlayerService 的定義是在源代碼中,還是在 Jar 包中。
本例的情況是在 Jar 包中,所以 LeoMediaPlayer 需要包含 MediaPlayerService 所在的 Jar 包:?
在工程 com.jia.yyyy.LeoMediaPlayer 的 Build Path->Configure Build Path... 的彈出式對話框 Java Build Path 中的選項(xiàng)卡: Order and Export 中,勾選 MediaPlayerService 所在的 Jar 包。
[2015-03-11?16:32:56?-?Dex?Loader]?Unable?to?execute?dex:?Java?heap?space [2015-03-11?16:32:56?-?com.jia.yyyy.LeoMediaPlayer]?Conversion?to?Dalvik?format?failed:?Unable?to?execute?dex:?Java?heap?space
網(wǎng)上給出的解決方法,都是要修改 eclipse.ini 文件。但是本例是一個(gè)例外,不用修改 eclipse.ini 文件,而是不應(yīng)該包含 .jar 文件。
如果在工程 com.jia.yyyy.LeoMediaPlayer 的 Build Path->Configure Build Path... 的彈出式對話框 Java Build Path 中的選項(xiàng)卡: Order and Export 中勾選了以下兩項(xiàng),則會產(chǎn)生上述錯(cuò)誤。
core-classes.jar
framework-classes.jar