我有这个简单的 java 代码:
package com.androiddesktoptest.testtest;
public class AndroidDesktopTestMain
{
public static void main(String[] args)
{
callFromAndroid();
}
public static void callFromAndroid()
{
System.out.println("DESKTOP CODE CALLED FROM ANDROID");
}
}
我想像这样从 Android 调用它:
import com.androiddesktoptest.testtest.AndroidDesktopTestMain;
public void onCreate(Bundle savedInstanceState)
{
//...
AndroidDesktopTestMain.callFromAndroid();
}
然后我得到 java.lang.NoClassDefFoundError
我正在使用 Eclipse,我的项目 AndroidDesktopTest 已检查导出 AndroidDesktopTest/src。此外,eclipse 会在 Android 中自动完成我的代码,因此它会在桌面项目中正确地看到我的代码。
我做错了什么?我在以前的以前的以前的项目中做过这样的事情,从这个时候开始,也许 ADT 已经改变了或者什么......
* 更新 *
整个错误
07-20 14:02:56.452: E/AndroidRuntime(30233): java.lang.NoClassDefFoundError: com.androiddesktoptest.testtest.AndroidDesktopTestMain
最佳答案
Order & Export 并不是 Android ADT 最完善的功能。
如果您改为将桌面项目中的链接 src 文件夹包含到您的 Android 项目中(右键单击项目 > 构建路径 > 链接源文件夹),则该类将被用作属于 Android 项目。
我认为这样做的首选方法是创建一个 jar 文件或一个库项目,但在您拥有稳定的 Deskptop 代码之前,这些方法可能太麻烦而无法尝试。
希望对您有所帮助!
关于java - 在 eclipse 中从 android 调用纯 java 代码(单独的项目)时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11579425/