Android-如何使用来自另一个Java项目的方法

Android-如何使用来自另一个Java项目的方法,java,android,build,Java,Android,Build,我正在开发一个Android应用程序,它基于以前Java程序中的类。但是每当我试图从Java项目调用一个方法时,我都会在Android仿真器上得到错误:不幸的是,MyApp已经停止 例如: Toast.makeText(getBaseContext(), User.dummyString(), Toast.LENGTH_SHORT).show(); 导致此错误,其中用户类的定义如下: public class User { public static String dummyStri

我正在开发一个Android应用程序,它基于以前Java程序中的类。但是每当我试图从Java项目调用一个方法时,我都会在Android仿真器上得到错误:不幸的是,MyApp已经停止

例如:

Toast.makeText(getBaseContext(), User.dummyString(), Toast.LENGTH_SHORT).show();
导致此错误,其中用户类的定义如下:

public class User {

    public static String dummyString(){
        return "Hello hello";
    }

}

我将Java项目添加到Android项目的构建路径中,并在Java项目的构建路径中的Order and Export选项卡中勾选了src文件夹。如何解决此问题?

首先,您的用户类实例化似乎有误

而不是使用

User.dummyString();
您应该像这样实例化它

 User user = new User();
然后试着用你的方法


如果你发布了你收到的错误也会有所帮助。

java.lang.NoClassDefFoundError:com.GC01.Coursework.User意味着android找不到你的用户类。您正在链接库,但apk没有打包它。您可能需要再次检查构建过程,尽管最简单的修复方法是将源代码直接包含在项目中。

您可以打印出错误的实际堆栈跟踪日志吗?不幸的是,MyApp已经停止。是一条最终用户消息。啊,找到了!Logcat把东西扔得到处都是,所以我一定是错过了。这似乎是相关的:java.lang.NoClassDefFoundError:com.GC01.Coursework.User仍然不清楚为什么找不到类定义……我在下面给出了答案。请记住,Logcat是您的朋友。我认为他做得很好,因为dummyString方法是静态的,所以使用User.dummyString有什么问题吗;dummyString是一个静态方法,所以他应该实例化userIt是一个静态方法,这就是为什么我直接使用类的名称而不创建实例的原因。我尝试过实例化一个新用户;不管怎样,但它给出了相同的错误。它不会告诉我try-catch的错误是什么,它只是向我显示然后关闭应用程序。当你说我应该将源代码直接包含在我的项目中时,你的意思是复制包含相关代码的文件夹吗?我不想这样做,因为我正在并行开发Java项目,不想做两次所有的更改。在我的构建过程中,我应该检查什么样的事情?如果您使用源代码管理进行开发,那么保持代码的最新状态并不是一个挑战。git:,svn:但是如果你坚持保留代码的一个副本,那么官方的android参考对我来说是有效的:我意识到我的后一个解决方案只适用于android库,而你试图链接到的其他源代码则不适用。对于非android库,Dalvik需要在其lib文件夹中编译文件的jar,否则即使您在构建路径中列出了源代码的位置,它也不会被添加到项目中。看看这个以前被接受的解决方案:编译一个jar,并在每次更改其他源代码时将其重新链接到android项目,这比从git推/拉编辑要麻烦两倍。我会选择源代码管理。