Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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
Java NoClassDefFoundError使用Android项目的单例模式_Java_Android_Maven_Singleton_Noclassdeffounderror - Fatal编程技术网

Java NoClassDefFoundError使用Android项目的单例模式

Java NoClassDefFoundError使用Android项目的单例模式,java,android,maven,singleton,noclassdeffounderror,Java,Android,Maven,Singleton,Noclassdeffounderror,我目前正在开发一个Android应用程序,它使用RESTfulWebServices与服务进行通信,这是一个Maven项目。我们使用单例模式来存储从Maven项目获得的响应。但是,一旦在SingletonClass中访问ResponseBean,我就会得到一个NoClassDefFoundError,即使我已经将Maven项目添加到Java构建路径中。我一整天都在试图解决这个问题,但我找不到解决办法 这是我收到的错误消息: 04-28 21:17:27.889: E/AndroidRuntime

我目前正在开发一个Android应用程序,它使用RESTfulWebServices与服务进行通信,这是一个Maven项目。我们使用单例模式来存储从Maven项目获得的响应。但是,一旦在SingletonClass中访问ResponseBean,我就会得到一个NoClassDefFoundError,即使我已经将Maven项目添加到Java构建路径中。我一整天都在试图解决这个问题,但我找不到解决办法

这是我收到的错误消息:

04-28 21:17:27.889: E/AndroidRuntime(1584): FATAL EXCEPTION: main
04-28 21:17:27.889: E/AndroidRuntime(1584): java.lang.NoClassDefFoundError: ch.uzh.ifi.seal.soprafs14.common.beans.user.UserResponseBean
04-28 21:17:27.889: E/AndroidRuntime(1584):     at ch.uzh.ifi.seal.soprafs14.group_09_android.model.GameDataSingleton.<init>(GameDataSingleton.java:32)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at ch.uzh.ifi.seal.soprafs14.group_09_android.model.GameDataSingleton.getInstance(GameDataSingleton.java:45)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at ch.uzh.ifi.seal.soprafs14.group_09_android.gui.activities.MenuActivity.onCreate(MenuActivity.java:55)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.Activity.performCreate(Activity.java:5104)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.os.Looper.loop(Looper.java:137)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at android.app.ActivityThread.main(ActivityThread.java:5041)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at java.lang.reflect.Method.invokeNative(Native Method)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at java.lang.reflect.Method.invoke(Method.java:511)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-28 21:17:27.889: E/AndroidRuntime(1584):     at dalvik.system.NativeStart.main(Native Method)
04-28 21:17:31.293: I/Process(1584): Sending signal. PID: 1584 SIG: 9

提前谢谢

之所以出现此异常,是因为DVM无法在apk中找到UserResponseBean

尝试重新检查您对maven的依赖性我假设您正在使用maven,并确保它是正确的

如果您使用的是.jar库,请尝试将其移动到libs文件夹


让我知道会发生什么。

尝试属性->Java构建路径->库->添加库->用户库!!!!!!我认为这是适合您的解决方案。

我将Maven类作为.jar文件导入,但这仍然没有奏效。最后,我安装了最新的Android构建工具rev。19.0.3这对我来说很有帮助。。。
    package ch.uzh.ifi.seal...;

import ch.uzh.ifi.seal.soprafs14.common.beans.lobby.LobbyResponseBean;
import ch.uzh.ifi.seal.soprafs14.common.beans.user.UserResponseBean;

/**
 * This singleton class contains all game data on the client and allows to
 * access this data from all activities in the application.
 * 
 */
public class GameDataSingleton {
    private static GameDataSingleton instance = null;

    private String username;

    /**
     * Contains user data like ID, username and token.
     */
    private UserResponseBean user;

    /**
     * Contains lobby data like lobbyID and a list of all players.
     */
    private LobbyResponseBean lobby;

    /**
     * Private Constructor -> Singleton pattern
     */
    private GameDataSingleton() {
        user = new UserResponseBean();  // I get the Error at this line
        lobby = new LobbyResponseBean();
        username = "";
    }

    /**
     * Returns instance of GameDataSingleton or if it does not yet exist,
     * creates a new instance.
     * 
     * @return GameDataSingleton instance
     */
    public static GameDataSingleton getInstance() {
        if (instance == null) {
            instance = new GameDataSingleton();
        }
        return instance;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public UserResponseBean getUser() {
        return user;
    }

    public void setUser(UserResponseBean user) {
        this.user = user;
    }

    public LobbyResponseBean getLobby() {
        return lobby;
    }

    public void setLobby(LobbyResponseBean lobby) {
        this.lobby = lobby;
    }
}