質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

5066閲覧

activityViewModels()が見つからない

yuki_kamikita

総合スコア3

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2020/10/13 10:20

編集2020/10/13 10:56

前提・実現したいこと

非推奨になったViewModelProviders.ofを使用せずにActivityでViewModelのインスタンスを作成したい

https://qiita.com/FKbelm/items/4824fcf8e7eb7c879f81
こちらのページの

private val activityViewModel: ActivityViewModel by activityViewModels() private val fragmentViewModel: FragmentViewModel by viewModels()

を使用したい

発生している問題・エラーメッセージ

activityViewModels()が見つからない
viewModels()にしても同様
イメージ説明

Unresolved reference: activityViewModels

該当のソースコード

MainActivity

1class MainActivity : AppCompatActivity() { 2 private val viewModel: SampleViewModel by activityViewModels() 3 4 override fun onCreate(savedInstanceState: Bundle?) { 5 super.onCreate(savedInstanceState) 6 setContentView(R.layout.activity_main) 7 8 } 9}

ViewModel

1class SampleViewModel : ViewModel() { 2 3}

buildgradleapp

1// build.gradle(:app) 2apply plugin: 'com.android.application' 3apply plugin: 'kotlin-android' 4apply plugin: 'kotlin-android-extensions' 5apply plugin: 'kotlin-kapt' 6 7android { 8 compileSdkVersion 29 9 buildToolsVersion "30.0.1" 10 11 defaultConfig { 12 applicationId "com.akaiyukiusagi.pagedlistsample" 13 minSdkVersion 28 14 targetSdkVersion 29 15 versionCode 1 16 versionName "1.0" 17 18 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 19 } 20 21 buildTypes { 22 release { 23 minifyEnabled false 24 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 25 } 26 } 27 28 compileOptions { 29 sourceCompatibility JavaVersion.VERSION_1_8 30 targetCompatibility JavaVersion.VERSION_1_8 31 } 32 33 kotlinOptions { 34 jvmTarget = "1.8" 35 } 36} 37 38dependencies { 39 implementation fileTree(dir: "libs", include: ["*.jar"]) 40 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 41 implementation 'androidx.core:core-ktx:1.3.2' 42 implementation 'androidx.appcompat:appcompat:1.2.0' 43 implementation 'androidx.constraintlayout:constraintlayout:2.0.1' 44 implementation 'androidx.recyclerview:recyclerview:1.1.0' 45 testImplementation 'junit:junit:4.12' 46 androidTestImplementation 'androidx.test.ext:junit:1.1.2' 47 androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' 48 49 implementation "androidx.fragment:fragment-ktx:1.2.5" 50 implementation "androidx.activity:activity-ktx:1.1.0" 51 52}

試したこと

  • build.gradleにjava1.8を記述

https://www.youtube.com/watch?v=wjG4VQ3x7xE&feature=emb_logo

  • AndroidStudioのKotlinのTarget JVM versionを1.8に変更

Kotlinのバージョン 1.8

  • AndroidStudioの再起動

  • 以下のライブラリを追加

implementation "androidx.fragment:fragment-ktx:1.2.5" implementation "androidx.activity:activity-ktx:1.1.0"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

implementation "androidx.activity:activity-ktx:1.1.0"
上記のライブラリを適用後再起動(もしくはAndroidStudio4.1にしたから?)で解決しました

投稿2020/10/14 02:51

yuki_kamikita

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問