Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在eclipse中从android调用纯java代码(单独的项目)时出错_Java_Android_Eclipse - Fatal编程技术网

在eclipse中从android调用纯java代码(单独的项目)时出错

在eclipse中从android调用纯java代码(单独的项目)时出错,java,android,eclipse,Java,Android,Eclipse,我有以下简单的java代码: package com.androiddesktoptest.testtest; public class AndroidDesktopTestMain { public static void main(String[] args) { callFromAndroid(); } public static void callFromAndroid() { System.out.printl

我有以下简单的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.TestTestTest.AndroidDesktopTestMain
试试这个

new AndroidDesktopTestMain.callFromAndroid();
从静态方法调用非静态方法的唯一方法是拥有包含该非静态方法的类的实例。根据定义,非静态方法是在某个类的实例上调用的方法,而静态方法属于该类本身。

试试这个

new AndroidDesktopTestMain.callFromAndroid();

从静态方法调用非静态方法的唯一方法是拥有包含该非静态方法的类的实例。根据定义,非静态方法是在某个类的实例上调用的方法,而静态方法属于该类本身。

听起来,当你运行android时,你没有将该类转移到手机上

确保:


右键单击project-properties-java build path-Order and Export(是否在此处选中?)

运行android时,您似乎没有将类发送到手机上

确保:


右键单击project-properties-java构建路径-Order and Export(在这里选中了吗?

Order&Export不是Android ADT最完善的功能

如果您将桌面项目中链接的src文件夹包含到您的Android项目中(右键单击项目>构建路径>链接源文件夹),则该类将被使用,就像它属于Android项目一样

我认为最好的方法是创建一个jar文件或一个库项目,但在没有稳定的Deskptop代码之前,这些方法可能太麻烦了


希望有帮助

订单和导出并不是安卓ADT最完善的功能

如果您将桌面项目中链接的src文件夹包含到您的Android项目中(右键单击项目>构建路径>链接源文件夹),则该类将被使用,就像它属于Android项目一样

我认为最好的方法是创建一个jar文件或一个库项目,但在没有稳定的Deskptop代码之前,这些方法可能太麻烦了



希望有帮助

关于将Java库包含到Android项目中,建议在链接的Java项目的构建路径对话框中将“JRE系统库”替换为API级别的Android.jar。

关于将Java库包含到Android项目中,建议替换“JRE系统库”在链接的Java项目的“构建路径”对话框中使用android.jar作为API级别。

我对jar没有问题,但对单独的项目没有问题。07-20 14:02:56.452:E/AndroidRuntime(30233):java.lang.NoClassDefFoundError:com.androiddesktoptest.testtest.androidDesktopTestMain这两个项目是如何链接的?Anders Metnik-一个项目导出源代码,第二个(Android)在“构建路径中的必需项目”中有java项目。这足够了吗?我对JAR没有问题,但对分离的项目有问题。07-20 14:02:56.452:E/AndroidRuntime(30233):java.lang.NoClassDefFoundError:com.androiddesktoptest.TestTestTest.AndroidDesktopTestMain这两个项目是如何链接的?Anders Metnik-一个项目导出源,第二个(Android)中有java项目“构建路径中的必需项目”。足够了吗?什么?public static void callFromAndroid()我不明白你的意思..你试过上面的代码了吗?它工作吗?callFromAndroid是静态的,所以我不理解你的答案…是的,我试过了(看看另一个答案,同样奇怪的建议)。什么?public static void callFromAndroid()我不明白你的意思。你试过上面的代码了吗?它能工作吗?callFromAndroid是静态的,所以我不明白你的答案…是的,我试过了(看看另一个答案,同样奇怪的建议)。为了顺序和导出,将你的外部项目上移,使它几乎位于顶部(就在你的android项目下面)。我想他指的是库导出顺序的优先级。src从一开始就在顶部,之后需要是您的java项目,否则当您将其加载到设备上时,它不会正确引用它。否则请附上它的屏幕截图(导出顺序).我可以从中解释出来。为了进行排序和导出,将外部项目向上移动,使其几乎位于顶部(在android项目的正下方)。我想他指的是库导出顺序的优先级。src从一开始就在顶部,之后需要是您的java项目,否则当您将其加载到设备上时,它不会正确引用。否则,请附上它的屏幕截图(导出顺序)。我可以从中解释出来。