android - ViewModelProviders 在 API 19 上找不到我的 ViewModel 类
问题描述
我正在尝试在 Android 4.4 (API 19) 中创建我的 ViewModel 类,但会引发错误。我尝试在 Android 5.1 上执行并且工作正常。
进口:
import androidx.lifecycle.ViewModelProviders
代码:
mViewModel = ViewModelProviders.of(this)[SplashScreenViewModel::class.java]
错误:
java.lang.NoClassDefFoundError: com.nddprint.nddprinthplink.viewmodel.SplashScreenViewModel
at com.nddprint.nddprinthplink.view.splash.SplashScreenFragment.onCreate(SplashScreenFragment.kt:36)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2586)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838)
at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2100)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1874)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1830)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2663)
at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2624)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:904)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
at android.app.Activity.performStart(Activity.java:5241)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2168)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
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)
解决方案
也许这可以帮助你。
multidex - 启用了 multidex 的 NoClassDefFoundError
存在一个问题,即您的 ViewModel(在您的情况下为 SplashScreenViewModel)中不能有一个名为 clear() 的方法。
如果这是您的问题,请重命名该方法。我希望这可以帮助你。
推荐阅读
- reactjs - 使用 Babel 配置 webpack 以使用 TypeScript
- node.js - 由于未解析的别名,无法启动节点服务器
- c# - 如果电子邮件是使用桌面版 MS Outlook 发送的,为什么重新发送电子邮件不会将副本保存到 Exchange Online 中的 SentItems?
- facebook - 从另一个页面自动分享 Facebook 页面上的帖子
- java - FirebaseRecycleAdapter 仅显示一个结果
- manpage - 如何像 Linux 手册页中的表格一样在两列中写入?
- javascript - 在外部单击时隐藏侧边栏组件
- django - 无法在 django 的 dash-plotly 中添加电子表格中的行和列
- python - Python/pygame 植绒 boids 无法创建边框
- django - Django:无法使用预取计算属性进行注释