Android 第三方 Jar 的 Link 与问题:Unable to execute dex: Java heap space的解决方法
扫描二维码
随时随地手机看文章
如果工程运行时产生如下的错误:
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 的实现没有整合到 apk 包中。
根据在 Eclipse 中调试时出错时的提示,就可以看到 MediaPlayerService 的定义是在源代码中,还是在 Jar 包中。
本例的情况是在 Jar 包中,所以 LeoMediaPlayer 需要包含 MediaPlayerService 所在的 Jar 包:
在工程 com.jia.yyyy.LeoMediaPlayer 的 Build Path->Configure Build Path... 的弹出式对话框 Java Build Path 中的选项卡: 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
网上给出的解决方法,都是要修改 eclipse.ini 文件。但是本例是一个例外,不用修改 eclipse.ini 文件,而是不应该包含 .jar 文件。
如果在工程 com.jia.yyyy.LeoMediaPlayer 的 Build Path->Configure Build Path... 的弹出式对话框 Java Build Path 中的选项卡: Order and Export 中勾选了以下两项,则会产生上述错误。
core-classes.jar
framework-classes.jar