我需要编译这个项目: https://github.com/boatmeme/microsoft-translator-java-api
我在eclipse中创建了一个名为“microsoft-translator-java-api”的项目,并将所有这些项目文件从“com”文件夹复制到我的新项目的src文件夹中。一切都好但我有一些错误,说我需要一个名为“json-simple”的依赖库,然后我去这里:http://code.google.com/p/json-simple/downloads/list并下载最新版本(1.1.1)并将其导入到我的项目中单击我的项目并单击“构建路径”,然后单击“添加外部存档”并将其导入我的项目...现在一切正常,我没有任何错误......
现在,我需要创建一个jar文件。要做到这一点,我右键单击我的项目并单击“导出”,然后从列表中选择java-> jar文件,单击下一步,选择我的项目并取消选中右侧面板上的.classpath和.project,然后单击完成并执行创建我的.jar文件......
我需要在我的android项目中使用此文件,当在我的项目中包含此文件并运行项目时,我会收到错误。这是我的logcat:
01-23 11:44:41.016:E / AndroidRuntime(285):致命异常:AsyncTask#1 01-23 11:44:41.016:E / AndroidRuntime(285):java.lang.RuntimeException:执行doInBackground()时发生错误 01-23 11:44:41.016:E / AndroidRuntime(285):在android.os.AsyncTask $ 3.done(AsyncTask.java:200) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.FutureTask $ Sync.innerSetException(FutureTask.java:273) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:307) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.FutureTask.run(FutureTask.java:137) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:561) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.lang.Thread.run(Thread.java:1096) 01-23 11:44:41.016:E / AndroidRuntime(285):引起:java.lang.NoClassDefFoundError:org.json.simple.JSONValue 01-23 11:44:41.016:E / AndroidRuntime(285):at com.memetix.mst.MicrosoftTranslatorAPI.retrieveResponse(MicrosoftTranslatorAPI.java:161) 01-23 11:44:41.016:E / AndroidRuntime(285):at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:199) 01-23 11:44:41.016:E / AndroidRuntime(285):at com.memetix.mst.translate.Translate.execute(Translate.java:61) 01-23 11:44:41.016:E / AndroidRuntime(285):at com.memetix.MicrosoftTranslatorAndroidTestActivity $ MyAsyncTask.doInBackground(MicrosoftTranslatorAndroidTestActivity.java:34) 01-23 11:44:41.016:E / AndroidRuntime(285):at com.memetix.MicrosoftTranslatorAndroidTestActivity $ MyAsyncTask.doInBackground(MicrosoftTranslatorAndroidTestActivity.java:1) 01-23 11:44:41.016:E / AndroidRuntime(285):在android.os.AsyncTask $ 2.call(AsyncTask.java:185) 01-23 11:44:41.016:E / AndroidRuntime(285):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:305) 01-23 11:44:41.016:E / AndroidRuntime(285):... 4更多
当我使用“microsoft-translator-java-api”的预编译版本时,一切正常,项目完美无缺。但我自己编译不...
你可以在这里找到预编译的jar文件:https://github.com/downloads/boatmeme/microsoft-translator-java-api/microsoft-translator-java-api-0.6.1-jar-with-dependencies.jar
这是我的编译文件: https://dl.dropbox.com/u/15006326/java/microsoft-translator-java-api-0.6.1-jar-with-dependencies.jar
任何人都可以查看并帮助我吗?我只需要在语言.java文件中添加波斯语(fa)语言并重新编译它...但它对我不起作用。这个项目: https://github.com/boatmeme/microsoft-translator-android-test
仅修改了language.java文件... 请帮我。感谢
答案 0 :(得分:1)
从日志中可以看出,有NoClassDefFoundError
表示Java无法在运行时找到编译时可用的类。
json-simple
已包含在编译时但不在运行时。 org.json.simple
项目已打包在预编译的jar中。
所以要么配置Eclipse来构建一个 runnable jar ,它应该将所需的库打包到jar中,或者为jar创建一个Manifest并使用Class-Path header添加依赖项。
使用Java Decompiler将下载的二进制文件与编译后的jar进行比较可能也很有用,这可以清楚地表明差异。