как я смогу получить данные из класса Singleton java в классе kotlin.? так как мой проект - старый проект, и все приложение находится на java, теперь я реализую его новый модуль в kotlin, где я использую Java Singleton (CurrentUser.java)
в сервисном классе kotlin (UpdateWidgetService.kt)
, в то время как я использую этот код CurrentUser.getInstance().userType
для определения типа пользователя в Мой класс обслуживания бросает исключение ниже
Process: com.example.myapp, PID: 27066
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/myapp/main/CurrentUser
Джава
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
В котлине получите userType как это
val userType=CurrentUser.getInstance().userType
Убедитесь, что пакет импорта - это правильный путь к CurrentUser
затем аннулируйте кеши студии Android и перестройте проект
Я пробовал все возможные решения (очистить / восстановить / убить процесс и т. д.), Но не смог.
Не могли бы вы предоставить информацию, если вы используете ProGuard для минимизации кода?
Если да, убедитесь, что вы добавили класс модели в файл proguard-rules.pro
exmp: -keep class имя_пакета.models. * {*; }
Я не пользуюсь охраной.
Восстановите и сделайте недействительным кеш вашего проекта, а затем перезапустите студию Android. Также синхронизировать файловую систему. У меня была такая же проблема, и я проделал этот трюк, и у меня это сработало. Надеюсь, это может вам помочь.
Я получаю NoClassDefFoundError для класса CurrentUser.java при использовании его в классе kotlin .. как я смогу получить значение usertype.? если мой класс не найден.?