書籍

【書籍】いきなりプログラミング Android アプリ開発 – サポートページ

Sara

本書を始める前に

15ページ
プロジェクト作成後に表示される開発画面が変わりました。
書籍と同じ画面で開発をしたい方は以下の設定をしてください。コードに影響はありません。
設定方法:最新のAndroid Studioと書籍の開発画面を合わせる方法

Giraffe(書籍)

Hedgehog以降(最新版)

更新情報

2024年6月 Android Studio Koala での変更点

プロジェクト作成時の注意点
書籍ではプロジェクト作成時に選択する minSDK を 19 としていますが、21 に変更してください。

2024年5月 Android Studio Jellyfish での変更点

アプリ実行時のエラー
アプリを実行したときに Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library というエラーが出てしまう場合は、以下の設定をしてください。
設定はこちら→【エラー解決方法】Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library

2024年4月 サンプルコードの更新

付属データ(サンプルコード)が最新版 Android Studio Iguana に対応しました。
>> ダウンロードはこちら(翔泳社サイト)

ダウンロードファイル ch05/complete/Favorites/app/src/main/res/layout/list_item.xml
7行目 android:padding=”6dp”
が抜けていたので次回更新時に反映予定です。書籍内のコードに影響はありません。

2024年3月 Android Studio Iguana での変更点

onCreate メソッド内のコードについて
MainActivity.kt の onCreate メソッド内にコードが追加されています。

これはアプリを全画面表示(フルスクリーン)にするための設定です。

書籍と同じ画面にしたい方はコードを削除しても良いですし、そのまま残しておいても他のコードに影響はありません。

書籍

全画面表示

2023年11月 Android Studio Hedgehog 以降の変更点

インストール方法9ページ
・最新版のインストール方法はこちらのページをお読みください。
・テーマカラーの選択がなくなりました。テーマカラーの変更方法はこちら

開発画面について(15ページ)
インストール後の開発画面が大きく変わりました。書籍と同じ画面で開発を進めるには以下の設定をしてください。
最新の Android Studio と書籍の開発画面を合わせる方法

Device Manager の開き方(17ページ)
新しい開発画面では、右側メニューの上から3つ目のアイコンをクリックして開きます。

Code / Split / Design タブの表記(25ページ)
新しい開発画面では、アイコン画像になりました。左から Code / Split / Design です。

新しいプロジェクトの作成方法(30ページ)
新しい開発画面では、画面上部のプロジェクト名をクリックして New Project を選択します。

更新・訂正

93ページ
以下のコードどちらでも可能です。

tools:src=”@tools:sample/avatars”
tools:srcCompat=”@tools:sample/avatars”

121ページ
View. を省略できるようになりました。

class MainActivity : AppCompatActivity(), View.OnClickListener {

class MainActivity : AppCompatActivity(), OnClickListener {

158ページ 2行目
ダウンロードファイルの「ch04」→「ch05

困った時のチェックポイント

エミュレータでアプリが実行できない場合

アプリを実行したときに、以下のような画面が表示された場合はAn issue was found when checking AAR metadata~でアプリが実行できない場合の対処法をお読みください。

第6章 日記アプリ
Q
DatabaseHelper.kt の変更が反映されない(p.195)

DatabaseHelper.kt ではテーブルを作成しています。

テーブルを更新するコードを書かないかぎり、テーブルは最初に一度しか作成されません。

ですので、テーブル作成後にカラム名に変更を加えたり、サンプルデータに修正を加えても変更は反映されません。

この場合はエミュレータや実機からアプリを削除して再インストールしてください。

Q
アプリが強制終了してしまう(p.200)

データベースに日記を追加・表示するコードを書いてアプリを実行したときに、アプリがシャットダウン(強制終了)してしまう場合の対処法です。

DatabaseHelper.kt のコードに間違いがある可能性が高いので、コードを確認してください。

確認ポイント
  • カラム名(diary_date, diary_text)にスペルミスがないか
  • ダブルクォーテーション ” とシングルクォーテーション ‘ が正しいか
  • () を正しい位置で閉じているか

参考リンク

第0章 さあ、開発をはじめよう!

第1章 スマホで植物を育てよう!「フラワーシミュレータ―」

第2章 感動的な画像が作れる!?「エモーショナル写真集」

第3章 高速「寿限無」言えるかな?「早口言葉の達人」

第4章 「膃肭臍」は何と読む?「いつでもどこでも難読漢字」

参考リンクはありません。

第5章 「好き」よ、世界に届け!「マイ推し図鑑」

第6章 ボタンを押すだけ5秒で書ける!「ぜったい挫折しない日記帳」

ご質問について

本書に関するご質問・コードの不具合については、以下のコメント欄をご利用ください。

エラーに関するご質問の場合は、以下の4点をできるだけ具体的にお書きください。

  1. お使いのパソコン(Windows 11, macOS Ventura など)
  2. Android Studio のバージョン(Giraffe, Hedgehog など)
  3. 書籍の該当ページ
  4. 問題点、お試しになったこと
Subscribe
Notify of
guest
41 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
プログラミング初心者
プログラミング初心者
5 months ago

エラーが発生しました。
①開発環境(Windows11/edge/Android Studio Giraffe | 2022.3.1 Patch 3)
②org/gradle/tooling/BuildException(java.lang.NoClassDefFoundError:org/garadle/tooling/BuildException)
③本書のP87の上側にあるSync Now をクリックしたところ②のエラーメッセージが現れました。またタイムラインを確認したところ「Gradle sync cancelled」となっておりました。
どうしたらよいのかわかりません。解決策を教えていただけますでしょうか。

プログラミング初心者
プログラミング初心者
5 months ago
Reply to  Sara

返信いただきありがとうございます。
再起動したら先のメッセージは消えました。
ただ新しい問題が発生しました。
P87のMainActivity.ktに自動的に追加されると書いてあるコードが追加されておらず次のような書かれておりました。

import android.os.Bundle

自分で書き直したほうがよろしいでしょうか?
プログラミング初心者
プログラミング初心者
5 months ago
Reply to  Sara

返信ありがとうございます。
実はチャプター2の最後らへんのとこでエラーが解決できず、すべてのファイル等を削除しました。
そのためチャプター1で設定した内容も消えてしまったのかもしれません。
まずはチャプター1の内容をやり直します。
躓いた問題が解決できない場合はまた質問させていただきます。
ありがとうございました!

プログラミング初心者
プログラミング初心者
4 months ago
Reply to  Sara

いろいろバグが出てあれからあまり進んでいません。
compiledeskを最新にすることでエラーがなくなりほかのエラーが出現しました。
ちなみにテキストP90の画像が出てこず、止まっております。
エラー内容:Android resource linking failed
com.example.slider.app-mergeDebugResources-
30:/layout/activity_main.xml:23: error: ‘@tools:sample/avatars’ is incompatible with attribute src (attr) reference|color.
error: failed linking file resources.

よろしくお願いします。

プログラミング初心者
プログラミング初心者
4 months ago
Reply to  Sara

試したらエラーが解消されました。
ありがとうございました!
またお願いいたします。

プログラミング初心者
プログラミング初心者
5 months ago

次にほかの質問です。
・A newer version of androidx.core:core-ktx than 1.9.0 is available: 1.12.0
・Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details.
と右上の黄色いビックリマーク三角を押したら出てきました。
一つ目は「1.9.0」→「1.12.0」に変えたのですがこれから本書を進めるにあたり問題ありますでしょうか。
二つ目はわからなかったので何も変更は加えていませんが、ネットで調べたら別に変えなくても大丈夫と出ていましたがどうでしょうか。

AKIRA
AKIRA
4 months ago

お世話になります。
書籍:いきなりプログラミング
第3章:早口言葉アプリについて

テキストの通りに入力したつもりですが、エラーになってしまいました。
どこが間違っているか教えていただけないでしょうか

package com.example.hayakuchi

import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.speech.tts.TextToSpeech
import android.speech.tts.TextToSpeech.QUEUE_FLUSH
import android.util.Log
import android.view.View
import com.example.hayakuchi.databinding.ActivityMainBinding
import org.w3c.dom.Text
import java.sql.ClientInfoStatus
import java.util.Locale

class MainActivity : AppCompatActivity() , View.OnClickListener,TextToSpeech.OnInitListener{

private lateinit var binding: ActivityMainBinding
private lateinit var tts: TextToSpeech

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

tts = TextToSpeech(/* context = */ this@MainActivity,/* listener = */ this@MainActivity)
binding.btnFast.setOnClickListener(this)
binding.btnNormal.setOnClickListener(this)
binding.btnSlow.setOnClickListener(this)

binding.btnFast.visibility = View.INVISIBLE
binding.btnNormal.visibility = View.INVISIBLE
binding.btnSlow.visibility = View.INVISIBLE
}

override fun onInit(status: Int) {
if (status==TextToSpeech.SUCCESS){
if (tts.isLanguageAvailable(Locale.JAPAN) >=TextToSpeech.LANG_AVAILABLE){
tts.language = Locale.JAPAN

binding.btnFast.visibility = View.VISIBLE
binding.btnNormal.visibility = View.VISIBLE
binding.btnSlow.visibility = View.VISIBLE

} else{
Log.v(“MY_LOG”,“TextToSpeechの初期化成功。日本語が無効。”)
}
}else{
Log.v(“MY_LOG”,“TextToSpeechの初期化失敗。”)
}
}

override fun onClick(p0: View?) {
tts.stop()

val speakText = binding.editText.text.toString()

val rate = when(v.id){
R.id.btnFast -> 2.0F
R.id.btnSlow -> 0.5F
else -> 1.0F
}
tts.setSpeechRate(rate)

if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.LOLLIPOP){
tts.speak(speakText,TextToSpeech.QUEUE_FLUSH,null,“utteranceId”)
}else{
tts.speak(speakText,TextToSpeech.QUEUE_FLUSH,null)
}
}

override fun onDestroy(){
super.onDestroy()
tts.shutdown()
}
}

よろしくお願いいたします。

AKIRA
AKIRA
3 months ago
Reply to  Sara

Sara 様
ご連絡ありがとうございます。
教えていただいたように修正してみましたが、また別のエラーがでてしまいました。
エミュレータを動かした時のエラーは、以下の通りです。
Found data binding error(s):
[databinding] {“msg”:”\u003candroidx.constraintlayout.widget.ConstraintLayout id\u003d\u0027@+id/editText\u0027\u003e conflicts with another tag that has the same ID”,”file”:”app\\src\\main\\res\\layout\\activity_main.xml”,”pos”:[{“line0″:1,”col0″:0,”line1″:64,”col1”:51}]}
[databinding] {“msg”:”\u003cEditText id\u003d\u0027@+id/editText\u0027\u003e conflicts with another tag that has the same ID”,”file”:”app\\src\\main\\res\\layout\\activity_main.xml”,”pos”:[{“line0″:10,”col0″:4,”line1″:26,”col1”:48}]}

また、以下のように
58 行目の when(v.id) の v が赤文字になっている(画面上)のですが、そこが問題のような気がしますが、どうしたら赤文字でなくなるのかが分かりませんでした。

58 val rate = when(v.id){
   R.id.btnFast -> 2.0F
   R.id.btnSlow -> 0.5F
 else -> 1.0F
}

何か対処法があればご教示ねがいます。
よろしくお願いいたします。
Akira

初心者
初心者
2 months ago

サポートページに載っていないようですがP158の「ダウンロードファイルの「ch04」→「work」フォルダの中にある・・・・」ですが「ch05」の誤りかと思われます。

H.R
H.R
2 months ago

お世話になります。以下についてご質問させてください。
書籍:いきなりプログラミング
第3章:早口言葉アプリについて
①Mac/ Android Studio Iguana | 2023.2.1
②エラーはなし
③本に書いている通りにプログラミングし無事P126までいってアプリ実行に成功したのですがボタンが表示されないです。またP125のボタンを表示にするコードを消すとボタンは表示されましたが音声は再生されず。お手本用の『complete』でも再生されず解決策などあればご教示いただきたく、、
お忙しいところ恐縮ですがご確認よろしくお願いいたします。

H.R
H.R
2 months ago
Reply to  Sara

ご返信ありがとうございました。
エミュレーターを本に書いてあったAPI34 Nexus4に変更することで解決いたしました(昔設定したエミュレータのままで失礼いたしました..)。

追加でもう一点ご教示いただきたいのですがP123に書いてあった『Log』について解説したwebサイトのhttps://codeforfun.jp/book/のどの部分でしょうか?
色々探したのですが見つからず、後学のためぜひとも見てみたく、
すみませんが再度ご回答の方、何卒よろしくお願いいたします。

H.R
H.R
2 months ago
Reply to  Sara

ご返信ありがとうございました!
承知いたしました。

kazumasa.w
kazumasa.w
1 month ago

1 OS:Windows10
2 Android Studio Giraffe | 2022.3.1
3 P43のエミュレーターでアプリを実行したところ、次のエラーが出て、画面が表示されません。
Cannot resolve class Linearlayout:2
Unknown attribute android:layout_main_Top:37
Element Linearlayout is not allowed here:38
1行目の頭には〇に!のマーク、2行目と3行目の頭には△に!のマーク

kazumasa.w
kazumasa.w
1 month ago
Reply to  Sara

ご指摘ありがとうございました。解決しましたので、報告します。

kazumasa.w
kazumasa.w
1 month ago

先ほど送信したエラーメッセージの2行目の”layout_main_Top”は”layout_margin_Top”の誤りですので、訂正してください。

NORI
NORI
8 days ago

Windows10 Pro
Android Stufio Jellyfish 2023.3.1
48Page
val flowerImage: ImageView = findViewById(R.id.flowerImage)のお尻のflowerImageが赤字です。
エラーメッセージ?には
Unresolve reference:flowerImage
Variable ‘flowerImage’ is never used
val flowerImage: ImageView = findViewById(R.id.flowerImage)
Create id value resource ‘flowerImage’ Alt+Shift+Enter …
となっています。
importを展開すると、Button,ImageView,TestViewの3行は存在します。

どのようにすれば良いでしょうか?

NORI
NORI
7 days ago
Reply to  Sara

すみません。単純なミスでした。
activity_main.xmlファイルのandroid:id=”@+id/flowerImage”部分が”@+id/FlowerImage”になっていました。解決しました。

NORI
NORI
7 days ago

Android Studioのインストールを失敗した時にWindowsの標準的なAndroid Studioのアンインストールだけでうまくいきませんでした。
Android Studioを完全にアンインストールする方法を教えてください。

NORI
NORI
6 days ago

このWebページの「2024年3月 Android Studio Iguana での変更点」
の内容について質問します。

enableEdgeToEdge()および
ViewCompat.setOnApplyWindowsInsetsListener(…}
部分を残して全面表示にしたい場合、
findViewById(R.id.main))のmainが赤字になります。

そのまま残しておいても大丈夫となっていますが、大丈夫なのでしょうか?
私は既に問題のコード部分を消してしまったので再現できません。
エラーのため動かなかったような記憶があります。

NORI
NORI
6 days ago
Reply to  Sara

分かりました。
ただ、「いきなりプログラミング」の本の36ページにも
android:id=”@+id/main”
はありません。私が間違って消してしまったのでは無いようです。

NORI
NORI
5 days ago
Reply to  Sara

なるほど。
でも、このWebページの「2024年3月 Android Studio Iguana での変更点」の問題のコードのmainも赤字のように見えます。
Android Studioをリセットすれば自動で修正してくれると思っていたのですが、そうではないみたいですね。

NORI
NORI
4 days ago
Reply to  Sara

Android Studioを完全アンインストールして再度確認しました。
結論から言いますと、
activity_main.xmlにandroid:id=”@+id/main”は存在しました。
私のミスでした。
多分、android:id=”@+id/main”の意味が分からないまま、
テキストの36ページと同じ内容にするために削除したと思われます。
この時にコメントアウトすれば良かったのですが、Kotlinは全くの初心者なのでひたすらテキスト通りにすることに集中していたのだと思います。すみませんでした。

ABOUT ME
Sara
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

41
0
この記事にコメントするx
記事URLをコピーしました