Android アプリ開発 「MATRIX」

Androidアプリの開発に役立つサンプル集



Google Play Instant Development SDK(1.6.0)のアップデートがエラーで失敗する場合の対処方法

Google Play Instant Development SDK のアップデートエラー

Android StudioSDKマネージャーで「Google Play Instant Development SDK」のリビジョンを「1.5.0」→「1.6.0」にアップデートしようとすると、原因不明のエラーが発生してアップデートできない場合がありますが、確認したところ、このトラブルは前回の「1.4.0」→「1.5.0」にアップデートしようとした時のエラーと同じ方法で対処できることが分かりましたので、お困りの方は下記の対処方法を参考にしてください。

Google Play Instant Development SDK(revision 1.5.0)のアップデートがエラーで失敗する場合の対処方法

アップデートのエラー画面

Android Studio エラーメッセージ

備考・その他

次回「1.7.0」へのアップデートでも同じようなエラーが発生するかもしれませんので、その場合は再度この対処方法を試してみてください。

END

音楽を再生するアプリを作ってみよう ~ メディアプレイヤーの基本的な使い方 ~

音楽を再生するアプリの作り方

今回はメディアプレイヤーを使って音楽を再生するアプリを作ってみます。音楽を再生するアプリと聞くといろいろと難しいのでは・・・と考えてしまいがちですが、一つの曲を単純に再生するだけならとくに難しい技術は必要ありません。

下準備(プロジェクトに音楽ファイルを追加する)

プログラムを作成するまえにプロジェクトの「res」フォルダ内に「raw」フォルダを新規に追加作成して、その中に再生したい音楽ファイル(mp3,wav,mpeg4,ogg形式など)を追加します。

手順①

「res」フォルダを右クリックして「New」→「Android Resource Directory」を選択します。

f:id:vw-dsg:20181031192054p:plain

手順②

「New Resource Directory」という画面が表示されたら「Resource Type」を「raw」に変更し「OK」ボタンを押します。すると「res」フォルダの中に「raw」フォルダが作成されます。

f:id:vw-dsg:20181031192254p:plain

手順③

好きな音楽ファイル上で右クリック。表示されたメニューから「コピー」を選択しクリップボードにコピーします。

f:id:vw-dsg:20181031192608p:plain

手順④

「raw」フォルダ上で右クリックして表示されたメニューから「Paste」を選択。クリップボードにコピーしておいた音楽ファイルをペーストします。

f:id:vw-dsg:20181031191906p:plain

手順⑤

「raw」フォルダ内に音楽ファイルが追加されました。これでアプリから利用できるようになります。

f:id:vw-dsg:20181031190410p:plain

サンプルコード① MainActivity.java

プログラムは「メイン処理」「音楽を再生する処理」「音楽を停止する処理」の3つに分かれていますが、処理内容はとてもシンプルです。なお、詳しい内容についてはコード中のコメントを参照してください。 

public class MainActivity extends AppCompatActivity {

private MediaPlayer mediaPlayer1; //メディアプレイヤー用オブジェクト
private Button button_play; //プレイボタン用オブジェクト

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//レイアウトファイル(activity_main.xml)をビューにセット
setContentView(R.layout.activity_main);

//レイアウトファイル中のボタンを取得する
button_play = (Button)findViewById(R.id.play_button);

//上で取得したボタンにクリックイベントの監視を設定
button_play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

//メディアプレイヤーが未生成、または、メディアプレイヤーが未再生だったら
if(mediaPlayer1 == null || !mediaPlayer1.isPlaying()) {
//音楽を再生する処理を実行
music_start();
} else { //メディアプレイヤーが再生中だったら
//音楽を停止する処理を実行
music_stop();
}
}
});
}

//アプリがユーザーから見えなくなった時
@Override
protected void onStop() {
super.onStop();

//音楽を停止する処理を実行
music_stop();
}

//音楽の再生する処理
private void music_start() {

//メディアプレイヤーを生成
mediaPlayer1 = MediaPlayer.create(getBaseContext(), R.raw.music);
//曲の先頭から再生するように設定
mediaPlayer1.seekTo(0);
//再生開始
mediaPlayer1.start();
//ボタンの表示を「STOP」に変更
button_play.setText("STOP");
}

//音楽を停止する処理
private void music_stop() {

//メディアプレイヤーが生成されていない場合は何もせずメソッドを抜ける
if(mediaPlayer1 == null) return;
//音楽の再生をストップ
mediaPlayer1.stop();
//メディアプレイヤーを解放
mediaPlayer1.release();
//メディアプレイヤーにNULLをセット
mediaPlayer1 = null;
//ボタンの表示を「PLAY」に変更
button_play.setText("PLAY");
}
}

サンプルコード② activity_main.xml

画面に「PLAY」と「STOP」が切り替わるボタンがひとつ配置されているだけの単純な構成です。

<Button
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PLAY" />

結果画面

起動すると「PLAY」と書かれたボタンが表示されます。

f:id:vw-dsg:20181031185326j:plain

「PLAY」ボタンを押すとあらかじめセットしておいた音楽が再生され、ボタンのラベル表示が「STOP」に変わります。

f:id:vw-dsg:20181031185339j:plain

「STOP」ボタンを押すと音楽の再生が停止して、ボタンのラベル表示が再び「PLAY」に変わります。

f:id:vw-dsg:20181031185326j:plain

備考・その他

今回はひとつの音楽ファイルを再生するだけのアプリでしたが、音楽ファイルを複数読み込んで次から次へと連続で再生するようにできれば「音楽プレイヤー」のようなアプリが作れると思いますので、ぜひチャレンジしてみてください。

END

Google Play Instant Development SDK(revision 1.5.0)のアップデートがエラーで失敗する場合の対処方法

Google Play Instant Development SDK のアップデートエラー

Android Studio で Google Play Instant Development SDK のリビジョンを「1.4.0」から「1.5.0」にアップデートしようとするとエラーが発生してアップデートできない場合があります。

f:id:vw-dsg:20181025224057p:plain
Android Studio の右下に表示されるアップデート案内をクリックし、表示された選択画面で「Update Now」を選択する。

f:id:vw-dsg:20181025224133p:plain
アップデートが開始されダウンロードが始まる・・・しかし・・・

f:id:vw-dsg:20181025224112p:plain
原因不明のエラーが発生して「Google Play Instant Development SDK」のリビジョンアップが停止してしまう・・・。何度試しても失敗してしまうのでお手上げ状態に・・・

エラーの対処方法

海外の掲示板に「古いリビジョンのファイルが邪魔をしているので SDK のインストール先にある instantapps というフォルダを削除して再度アップデートすれば解決する…」とう書き込みがあったので、それを試してみたのですが何度トライしても結局ダメ・・・。

一時は途方に暮れてしまったのですが、しばらくしてから少し方法を変えてトライしてみたところ、なぜか無事にアップデートを完了することができました。

f:id:vw-dsg:20181025224341p:plain
① まず、SDK マネージャーを表示し「SDK Tools」タブをクリックして「Google Play Instant Development SDK」のチェックを外します。

f:id:vw-dsg:20181025224505p:plain
② 次に、SDK がインストールされているフォルダを開いて、その中にある「instantapps 」というフォルダを削除する。※削除してしまうと失敗した時に元に戻すのが面倒になるので「instantapps」を「instantapps_backup」などにリネームしても良いですね。

f:id:vw-dsg:20181025224133p:plain
Android Studio を再起動して再びアップデートを試みます。

f:id:vw-dsg:20181025224203p:plain
④ 今度は Google Play Instant Development SDK のリビジョン「1.5.0」のインストールが成功しました。

f:id:vw-dsg:20181025224247p:plain
⑤ 最後にSDKマネージャーを表示して「Google Play Instant Development SDK」にチェックを入れて完了です。

備考・その他

もしこの方法で失敗する場合は、⑤のSDKマネージャーの「Google Play Instant Development SDK」にチェックを入れるタイミングを少し変えてみてください。

END