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

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

ただいまの
回答率

87.50%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 462

score 7

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

環境

Androidstudio4.0

問題のコード

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

その他のコード

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.up.game1"
        minSdkVersion 24
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0'
    implementation 'com.google.android.gms:play-services-ads:19.3.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}

試したこと

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

追記

こちらが作成して起動しなかったソースコードとなります。

activity_main.xml(広告で追加した部分)

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        app:layout_constraintBottom_toBottomOf="parent"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
    </com.google.android.gms.ads.AdView>

MainActivity

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this@MainActivity) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
(以下略)

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

(略)
        </activity>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-ca-app-pub-3940256099942544~3347511713"/>
    </application>
</manifest>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

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

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

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

    <application

        (中略)

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

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

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

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

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

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


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

        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            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 22:05 編集

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

    キャンセル

  • 2020/08/26 22:44

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

    キャンセル

  • 2020/08/27 09:19

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

    キャンセル

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

  • ただいまの回答率 87.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る