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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

Q&A

解決済

1回答

8018閲覧

【Kotlin】Unresolved reference: onCreateが解決できず困っています。

kenta0228

総合スコア20

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

0グッド

0クリップ

投稿2019/05/04 13:33

前提・実現したいこと

はじめてのAndroidプログラミング 第4版
Chapter8:MySlideshowでUnresolved reference: onCreateなど下記エラーが
解決できず困っています。

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

'onCreate' overrides nothing Unresolved reference: onCreate Unresolved reference: setContentView Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: Cannot create an instance of an abstract class Unresolved reference: supportFragmentManager Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: Unresolved reference: player None of the following functions can be called with the arguments supplied: Unresolved reference: player Modifier 'override' is not applicable to 'local function' Unresolved reference: onResume Unresolved reference: player Modifier 'override' is not applicable to 'local function' Unresolved reference: onPause Unresolved reference: player Unresolved reference: player > Task :app:buildInfoGeneratorDebug

該当のソースコード

Kotlin(AndroidStudio)

1package com.example.kenta.myslideshow 2 3import android.media.MediaPlayer 4import androidx.appcompat.app.AppCompatActivity 5import android.os.Bundle 6import android.os.Handler 7import androidx.fragment.app.Fragment 8import androidx.fragment.app.FragmentManager 9import androidx.fragment.app.FragmentPagerAdapter 10import kotlinx.android.synthetic.main.activity_main.* 11import kotlin.concurrent.timer 12 13class MainActivity : AppCompatActivity() { 14 15 private lateinit var player: MediaPlayer 16 17 abstract class MyAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { 18 private val resources = listOf( 19 R.drawable.slide00, R.drawable.slide01, 20 R.drawable.slide02, R.drawable.slide03, 21 R.drawable.slide04, R.drawable.slide05, 22 R.drawable.slide06, R.drawable.slide07, 23 R.drawable.slide08, R.drawable.slide09 24 ) 25 26 override fun getCount(): Int { 27 return resources.size 28 } 29 30 override fun onCreate(savedInstanceState: Bundle?) { 31 super.onCreate(savedInstanceState) 32 setContentView(R.layout.activity_main) 33 pager.adapter = MyAdapter(supportFragmentManager) 34 val handler = Handler() 35 timer(period = 5000) { 36 handler.post { 37 pager.currentItem = (pager.currentItem + 1) % 10 38 } 39 } 40 player = MediaPlayer.create(this, R.raw.getdown) 41 player.isLooping = true 42 43 override fun onResume() { 44 super.onResume() 45 player.start() 46 } 47 48 override fun onPause() { 49 super.onPause() 50 player.pause() 51 } 52 } 53 } 54} 55 56

試したこと

ネットで複数Unresolved referenceの解決方法について調べましたが解決できずでした。
初心者のため、深く理解できていない可能性は高いです。

補足情報(FW/ツールのバージョンなど)

Mac版 AndroidStudio3.4を利用しております。
他に必要な情報などあればお教えいただければ調べて記載いたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

onCreate()など問題になっている関数はMainActivityクラスに属さなければなりません。しかし、ご提示のコードではMyAdapterという内部クラスの中にonCreate()などが実装された形になっています。本を参照にして作成されているとのことですが、どこか{}の対象がずれているのではないでしょうか?

投稿2019/05/04 13:51

keicha_hrs

総合スコア6766

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

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

kenta0228

2019/05/05 00:20

アドバイスいただきありがとうございます! 問題はonCreate()の場所でした。お陰様でかなりエラーが減りました。 あと一つだけ解決できず、わかりそうであればアドバイスいただけないでしょうか。他にもう一つスレッドを立てた方が良ければ立てるように致します。 【エラー内容】  Cannot create an instance of an abstract class  エラー個所:pager.adapter = MyAdapter(supportFragmentManager) 【ソース:MainActivity.kt】 package com.example.kenta.myslideshow import android.media.MediaPlayer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter import kotlinx.android.synthetic.main.activity_main.* import kotlin.concurrent.timer class MainActivity : AppCompatActivity() { private lateinit var player: MediaPlayer abstract class MyAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { private val resources = listOf( R.drawable.slide00, R.drawable.slide01, R.drawable.slide02, R.drawable.slide03, R.drawable.slide04, R.drawable.slide05, R.drawable.slide06, R.drawable.slide07, R.drawable.slide08, R.drawable.slide09 ) override fun getCount(): Int { return resources.size } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) pager.adapter = MyAdapter(supportFragmentManager) val handler = Handler() timer(period = 5000) { handler.post { pager.currentItem = (pager.currentItem + 1) % 10 } } player = MediaPlayer.create(this, R.raw.getdown) player.isLooping = true } override fun onResume() { super.onResume() player.start() } override fun onPause() { super.onPause() player.pause() } }
keicha_hrs

2019/05/05 04:42

新しく質問を立てられたようなので、そちらに回答しました。
kenta0228

2019/05/05 05:22

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問