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

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

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

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

Kotlin

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

Q&A

解決済

1回答

1474閲覧

android studioで広告を入れると起動しなくなる

moon_sun

総合スコア7

Android Studio

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

Kotlin

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

0グッド

0クリップ

投稿2020/08/26 07:51

編集2020/08/26 13:41

広告を入れるため、build.gradle(app)に下記1文(公式マニュアル通り)を入れるとエミュレータが起動しなくなりました。
原因がわからず、何を載せて相談すれば良いのかもわかっておりませんが、わかる方がいたらご回答いただけると幸いです。

###環境
Androidstudio4.0

###問題のコード

build.gradle(app)(問題部)

1 implementation 'com.google.android.gms:play-services-ads:19.3.0'

###その他のコード

build.gradle(app)(全部)

1apply plugin: 'com.android.application' 2apply plugin: 'kotlin-android' 3apply plugin: 'kotlin-android-extensions' 4 5android { 6 compileSdkVersion 30 7 buildToolsVersion "30.0.2" 8 9 defaultConfig { 10 applicationId "com.up.game1" 11 minSdkVersion 24 12 targetSdkVersion 29 13 versionCode 1 14 versionName "1.0" 15 16 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 } 18 19 buildTypes { 20 release { 21 minifyEnabled false 22 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 23 } 24 } 25} 26 27dependencies { 28 implementation fileTree(dir: "libs", include: ["*.jar"]) 29 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 30 implementation 'androidx.core:core-ktx:1.3.1' 31 implementation 'androidx.appcompat:appcompat:1.2.0' 32 implementation 'androidx.constraintlayout:constraintlayout:2.0.0' 33 implementation 'com.google.android.gms:play-services-ads:19.3.0' 34 testImplementation 'junit:junit:4.12' 35 androidTestImplementation 'androidx.test.ext:junit:1.1.2' 36 androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' 37 38}

###試したこと
問題の1行を消して起動すると普通に起動できました。
そのため、ここが原因なのではないかと思っています。

###追記
こちらが作成して起動しなかったソースコードとなります。
####activity_main.xml(広告で追加した部分)

activity_main.xml

1 <com.google.android.gms.ads.AdView 2 xmlns:ads="http://schemas.android.com/apk/res-auto" 3 android:id="@+id/adView" 4 android:layout_width="match_parent" 5 android:layout_height="wrap_content" 6 android:layout_centerHorizontal="true" 7 android:layout_alignParentBottom="true" 8 app:layout_constraintBottom_toBottomOf="parent" 9 ads:adSize="BANNER" 10 ads:adUnitId="ca-app-pub-3940256099942544/6300978111"> 11 </com.google.android.gms.ads.AdView>

####MainActivity

MainActivity

1 2class MainActivity : AppCompatActivity() { 3 4 lateinit var mAdView : AdView 5 6 override fun onCreate(savedInstanceState: Bundle?) { 7 super.onCreate(savedInstanceState) 8 setContentView(R.layout.activity_main) 9 10 MobileAds.initialize(this@MainActivity) {} 11 12 mAdView = findViewById(R.id.adView) 13 val adRequest = AdRequest.Builder().build() 14 mAdView.loadAd(adRequest) 15(以下略)

####Manifest.xml(広告追加部分付近)

Manifest

1(略) 2 </activity> 3 <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> 4 <meta-data 5 android:name="com.google.android.gms.ads.APPLICATION_ID" 6 android:value="ca-app-pub-ca-app-pub-3940256099942544~3347511713"/> 7 </application> 8</manifest>

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずは公式ドキュメントをじっくり読みましょう。build.gradleに1行追加すれば完了という書き方にはなっていないはずです。

スタートガイド | Mobile Ads SDK(Android)

エミュレーターでテスト広告を表示するならば、AndroidManifest.xmlに次の<meta-data>タグを追加します。ca-app-pub-3940256099942544~3347511713というのはテスト用のAPP_IDです。

xml

1 <application 2 3 (中略) 4 5 <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> 6 <meta-data 7 android:name="com.google.android.gms.ads.APPLICATION_ID" 8 android:value="ca-app-pub-3940256099942544~3347511713"/> 9 </application>

次に、レイアウトXMLに広告を表示するコンポーネントを追加します。広告の種類はいろいろありますが、例えばバナー広告を一番下の中央に表示させるなら次のようになるでしょう。なお、ca-app-pub-3940256099942544/6300978111もテスト専用広告ユニットIDです。

xml

1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 <com.google.android.gms.ads.AdView 10 xmlns:ads="http://schemas.android.com/apk/res-auto" 11 android:id="@+id/adView" 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:layout_alignParentBottom="true" 15 android:layout_centerHorizontal="true" 16 ads:adSize="BANNER" 17 ads:adUnitId="ca-app-pub-3940256099942544/6300978111" 18 app:layout_constraintBottom_toBottomOf="parent" 19 app:layout_constraintEnd_toEndOf="parent" 20 app:layout_constraintStart_toStartOf="parent" /> 21</androidx.constraintlayout.widget.ConstraintLayout>

次に、広告を読み込む処理を追加します。これはソースファイルがJavaかKotlinによって異なるので、公式ページを参考にしてください。下記リンクでMainActivityの例が表示されるはずなので、その通りに記述してみましょう。

バナー広告 | Mobile Ads SDK(Android)

これで最低限の広告表示(ただしテストIDなのでテスト広告が表示されるだけ)ができるのではないでしょうか。


コードのご提示ありがとうございます。AndroidManifest.xmlの記述についてですが、

xml

1 <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> 2 <meta-data 3 android:name="com.google.android.gms.ads.APPLICATION_ID" 4 android:value="ca-app-pub-ca-app-pub-3940256099942544~3347511713"/>

valueに設定している値がおかしいようです。ca-app-pub-を2度打ちしている感じでしょうか。

× ca-app-pub-ca-app-pub-3940256099942544~3347511713
ca-app-pub-3940256099942544~3347511713

これはコードを提示する際のフォームへの入力ミスでしょうか?それとも実際にこうなっているのでしょうか?実際にこうなっているとしたら、アプリを起動しても即座に落ちると思います。

投稿2020/08/26 08:44

編集2020/08/26 14:10
keicha_hrs

総合スコア6768

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

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

moon_sun

2020/08/26 09:07

回答ありがとうございます。 説明不足で申し訳ございません。 そこまで全てやった上で1つずつ消していったら、grandleの部分を消したところで起動した次第です。 広告の起動以前に、エミュレータ上で作成したアプリが起動しようとするタイミングでクラッシュします。
keicha_hrs

2020/08/26 09:59 編集

実現したいことがよくわからないんですが・・・
moon_sun

2020/08/26 12:28

説明が下手で申し訳ありません。 現状と実現したい状態は下記の通りです。 ・現状 広告を入れなければ正常にアプリが動きますが、広告を入れるとアプリが起動すらしません。 ・実現したい状態 広告を入れても起動する。
keicha_hrs

2020/08/26 12:33

上記の回答で示したテスト用のIDを入れても起動しないのですか?上記のコードで、私の手元ではエミュレーターでもアプリは正常に起動します。
keicha_hrs

2020/08/26 13:26 編集

「そこまで全てやった上で」というのは、広告を表示するアプリをひとまず制作したけど正常に動作しなかったということですよね。それならば、作ったコードを示すべきです(量が多ければ必要と思われる範囲で)。IDを取得済みであったとしても、もちろんIDの部分は秘匿して構いません。(まずはテストIDで表示できることを目指すべきかと思いますが。)
moon_sun

2020/08/26 13:44

ご指摘ありがとうございます。 正常に動作しなかったコードを追記いたしました。 まずはテストIDで作っております。
moon_sun

2020/08/27 00:19

ご指摘ありがとうございました。 単純な誤記だったようです。 無事起動しました。ご迷惑をお掛けしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問