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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Q&A

解決済

1回答

3154閲覧

ボタンを押すと音楽が鳴るようにしたい。

-1an.vvks-

総合スコア71

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

0グッド

1クリップ

投稿2016/11/07 07:51

編集2016/11/07 15:15

###やりたいこと

  • Androidアプリ制作の練習
  • ボタンを押すと音楽が鳴るようにする。

###State:

  • こちらChapter4のテキスト、4-2-1(p.91~)

を参考にやってるのですがエラーを吐かれます。

  • 使用IDEはAIDE。

###Code:

  • mainactivity.java

java

1package com.mycompany.myapp; 2 3//import android.support.v7.app.ActionBarActivity;//AIDEだとエラー出る@"support"→コメントアウトで放置中 4import android.app.*; 5import android.os.Bundle; 6import android.view.Menu; 7import android.view.MenuItem; 8import android.view.View; 9import android.widget.Button; 10 11 12public class MainActivity extends Activity { 13 MediaPlayer mPlayer;//★★★ここエラー★★★ 14 15 @Override 16 protected void onCreate(Bundle savedInstanceState) 17 { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 21 Button btn = (Button) findViewById(R.id.button1); 22 mPlayer = MediaPlayer.create(this, R.raw.music);//★★★ここエラー★★★ 23 btn.setOnClickListener(new View.OnClickListener() { 24 @Override 25 public void onClick(View arg0) { 26 Button btn = (Button) arg0; 27 btn.setText("こんにちは"); 28 mPlayer.start();//★★★ここエラー★★★ 29 } 30 }); 31 } 32 //ここも放置中 33 //@Override 34 //public boolean onCreateOptionsMenu(Menu menu){ 35 // 36 //} 37}

###Img:

  • src

エラー箇所

  • err

エラー内容

###欲しい回答

  • どんなファイルにどんなコードが要るのか。

(e.g. メイン画面の見た目を定義したXMLファイルのTextViewに「android:text="Hello"」を追記。)

  • できれば、どうしてそれが要るのかも解説してもらえるとありがたいです。

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

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

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

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

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

yona

2016/11/07 09:18

エラーログをテキストで追記してください。
-1an.vvks-

2016/11/07 09:25

すみません、PCがないのでAndroidStudioではなくAIDEで開発しています。AIDEでのエラーログの見方を教えてもらえますか?
swordone

2016/11/07 10:24

私だけでしょうか?画像が見られない…
yona

2016/11/07 10:27

画像も見られません。AIDEでのエラーログの見方については自身で調べてください。
-1an.vvks-

2016/11/07 14:47

すみません!学校PCからやったときはちゃんと表示されていたと思ったのですが…,再度画像をアップロードしておきます.
guest

回答1

0

ベストアンサー

MediaPlayerをインポートしていないためのエラーです。
インポートに下記を追加して下さい。

java

1import android.media.MediaPlayer;

Javaでは、クラス名や型名は基本的にはパッケージ名からすべて書かなければいけないのです(自身のパッケージ内のクラスおよびjava.langパッケージは例外)。これを完全限定名といいます。例えばonCreateメソッド内Buttonの宣言をしている行も本来なら

java

1android.widget.Button btn = (android.widget.Button) findViewById(R.id.button1);

と書かなければいけないのです。しかしいちいちこんなこと書いていては面倒ですし、バグの原因にもなりえます。
そこで、javaファイル内で型名だけで書いているものは実際はこのパッケージのクラスですよということを宣言します。こうすると、その宣言をしたものはパッケージ名を省略して、クラス名だけで書くことができます。これがまさにインポートという仕組みです。

投稿2016/11/07 15:08

編集2016/11/07 15:16
swordone

総合スコア20651

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

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

-1an.vvks-

2016/11/07 15:17

読んでいたテキストでは特にimport文に追記する内容について書いていなかったように思えるのですが,AndroidStudioでは勝手に追記してくれるのでしょうか?
swordone

2016/11/07 15:21 編集

IDEによっては入力時に自動補完でインポートまで自動でやるものもありますし、 この状態から何らかの操作をすれば足りないと思われるクラスをインポートするものもあります。
-1an.vvks-

2016/11/07 15:27

すばやい返信ありがとうございます! あと,import で記述する内容を自力で調べる際,どのような言葉で検索したら良いでしょうか.
swordone

2016/11/07 15:32

androidのクラスの場合、「android」と探したいクラス名(今回の場合MediaPlayer)で検索をかけると、このような「ドキュメント」と呼ばれるものがヒットします。 https://developer.android.com/reference/android/media/MediaPlayer.html 検索画面では「クラス名 | Android Developers」となっているページです。 このページの先頭の方に、「java.lang.Object」から始まって下に段になって色々(今回の例では1段ですが)書いてあるものがあるかと思います。これは継承関係を示すものなのですが今は置いておいて、その一番下の段に位置するものが該当する完全限定名です。
-1an.vvks-

2016/11/08 03:18

ありがとうございます。 これでまた一段と捗りそうです。(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問