Skip to content

Instantly share code, notes, and snippets.

@msymt
Last active June 17, 2020 07:27
Show Gist options
  • Save msymt/d11d6d64c77837dc87ca660976ead860 to your computer and use it in GitHub Desktop.
Save msymt/d11d6d64c77837dc87ca660976ead860 to your computer and use it in GitHub Desktop.
viewmodelprovider deprecated in java の対処法

viewmodelprovider deprecated in java の対処法

環境

Android Studio 4.0
Build #AI-193.6911.18.40.6514223, built on May 21, 2020
Runtime version: 1.8.0_242-release-1644-b3-6222593 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.4
GC: ParNew, ConcurrentMarkSweep
Memory: 1237M
Cores: 8
Registry: ide.new.welcome.screen.force=true
Non-Bundled Plugins: 
GC: ParNew, ConcurrentMarkSweep

何が起きたか

Android Studioで、テンプレートとして、"Bottom Navigation Activity"の新規プロジェクトを立ち上げた。 試しに、Fragmentファイルを開くと、

viewmodelprovider deprecated in java

と表示。

対処法

変更前(初期)

dashboardViewModel = ViewModelProviders.of(this).get(DashboardViewModel::class.java)

変更後

dashboardViewModel = ViewModelProvider(this).get(DashboardViewModel::class.java)

なぜこうしたのか

androidx.lifecycle.ViewModelProvidersdeprecatedとのことで (https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders.html)

代わりにandroidx.lifecycle.ViewModelProviderを使えとのことでした。

参考

・ViewModelProviders is deprecated in 1.1.0
https://stackoverflow.com/questions/53903762/viewmodelproviders-is-deprecated-in-1-1-0

・archのViewModelProvider(s)から卒業するには
https://qiita.com/sudo5in5k/items/1d70ec65fd264eed5f7c

・Remove deprecated ViewModelProviders
https://github.com/android/plaid/pull/797/commits/21d8a14fedabba32e47dcdb70274ff6708ab3539

[Android]lifecycleライブラリ2.2.0からViewModelProviders.ofが非推奨になっちゃった件
https://minpro.net/viewmodelproviders-of-deprecated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment