在Kotlin类中调用Java单例类时发生NoClassDefFoundError

时间:2018-10-31 10:16:24

标签: java android kotlin singleton

如何从kotlin类的Java的Singleton类中获取数据?由于我的项目是一个旧项目,并且整个应用程序都在Java中,因此我现在在kotlin中实现其新模块,在这里我正在使用Kotlin服务类(CurrentUser.java)中的Java Singleton (UpdateWidgetService.kt)。此CurrentUser.getInstance().userType代码以获取“我的服务”类中的用户类型,并将其抛出异常以下

Process: com.example.myapp, PID: 27066
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/myapp/main/CurrentUser

Java

   public class CurrentUser {

          String userType = "";

     private static CurrentUser instance;

      public static CurrentUser getInstance() {
            if (instance == null) {
                instance = new CurrentUser();
            }
            return instance;
        }

        public void setUserType(String userType) {
            this.userType = userType;
        }

        public String getUserType() {
            return userType ;
        }



    }

科特林

CurrentUser.getInstance().userType

3 个答案:

答案 0 :(得分:2)

重建并失效缓存您的项目,然后重新启动android studio。 还同步文件系统。 我遇到了同样的问题,我做了这个技巧,对我有用。 希望对您有帮助。

答案 1 :(得分:0)

在kotlin中获取这样的userType

 val userType=CurrentUser.getInstance().userType

答案 2 :(得分:0)

如果您使用ProGuard缩小代码,您是否愿意提供信息?

如果是,请确保在您的proguard-rules.pro文件中添加模型类

exmp:-保留类packagename.models。* {*; }