Android API 19上的懒惰导致应用程序崩溃
我在我的应用程序中使用单例对象,并从Android API 19上的懒惰导致应用程序崩溃,android,kotlin,gradle,singleton,lazy-initialization,Android,Kotlin,Gradle,Singleton,Lazy Initialization,我在我的应用程序中使用单例对象,并从Applicationclass为其提供上下文。 我使用lazy{}delegate为setSharedReferences字段使用。它在API 21及更高版本上工作,但在API 19上,我有一个NoClassDefFoundError: 08-04 16:20:24.075 5576-5576/ru.maxim.barybians E/AndroidRuntime: FATAL EXCEPTION: main Process: ru.maxim.ba
Application
class为其提供上下文。
我使用lazy{}delegate为setSharedReferences
字段使用。它在API 21及更高版本上工作,但在API 19上,我有一个NoClassDefFoundError
:
08-04 16:20:24.075 5576-5576/ru.maxim.barybians E/AndroidRuntime: FATAL EXCEPTION: main
Process: ru.maxim.barybians, PID: 5576
java.lang.NoClassDefFoundError: ru.maxim.barybians.repository.local.PreferencesManager$sharedPreferences$2
at ru.maxim.barybians.repository.local.PreferencesManager.<clinit>(PreferencesManager.kt:15)
at ru.maxim.barybians.App.onCreate(App.kt:14)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4344)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
应用程序类
类应用程序:应用程序(){
重写fun onCreate(){
super.onCreate()
PreferencesManager.context=applicationContext
}
更改Gradle版本或使缓存无效对我不起作用。
我将非常感谢对解决方案的任何帮助。应用程序崩溃是因为类
App
继承自Application
。在我将其更改为MultiDexApplication
后,应用程序开始正常工作
class应用程序:多索引应用程序()
object PreferencesManager {
lateinit var context: Context
private val sharedPreferences: SharedPreferences by lazy { PreferenceManager.getDefaultSharedPreferences(context) }
compileSdkVersion 29
buildToolsVersion "29.0.0"
minSdkVersion 19
targetSdkVersion 29
kotlin_version = '1.3.72'
Gradle Version = 6.1.1
Gradle Plugin Version = 4.0.1