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

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

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

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Android

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

Android Studio

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

Kotlin

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

解決済

AndroidでAdMobアプリを作るとエラーになって落ちる

jmdajmw
jmdajmw

総合スコア262

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Android

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

Android Studio

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

Kotlin

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

1回答

0リアクション

0クリップ

305閲覧

投稿2022/09/18 23:48

編集2022/09/18 23:49

前提

Android StudioでGoogle AdMob Ads Activityプロジェクトを新規作成してビルドしてapkをインストールしました。

実現したいこと

とりあえずスケルトンアプリを起動したい。

発生している問題・エラーメッセージ

2022-09-19 08:38:38.239 10706-11020/com.example.xxxxxxx E/chromium: [ERROR:simple_file_enumerator.cc(21)] opendir /data/user/0/com.example.xxxxxxx/cache/WebView/Default/HTTP Cache/Code Cache/js: No such file or directory (2) 2022-09-19 08:38:38.240 10706-11020/com.example.xxxxxxx E/chromium: [ERROR:simple_index_file.cc(614)] Could not reconstruct index from disk

該当のソースコード

Kotlin

package com.example.xxxxxxx import com.google.android.gms.ads.AdError import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.FullScreenContentCallback import com.google.android.gms.ads.LoadAdError import com.google.android.gms.ads.MobileAds import com.google.android.gms.ads.interstitial.InterstitialAd import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback import android.widget.Button import android.widget.TextView import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import android.view.Menu import android.view.MenuItem import android.widget.Toast import com.example.xxxxxxx.databinding.ActivityMainBinding import java.util.Locale // Remove the line below after defining your own ad unit ID. private const val TOAST_TEXT = "Test ads are being shown. " + "To show live ads, replace the ad unit ID in res/values/strings.xml " + "with your own ad unit ID." private const val START_LEVEL = 1 class MainActivity : AppCompatActivity() { private var currentLevel: Int = 0 private var interstitialAd: InterstitialAd? = null private lateinit var nextLevelButton: Button private lateinit var levelTextView: TextView private val TAG = "MainActivity" private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) MobileAds.initialize( this ) { } // Load the InterstitialAd and set the adUnitId (defined in values/strings.xml). loadInterstitialAd() // Create the next level button, which tries to show an interstitial when clicked. nextLevelButton = binding.nextLevelButton nextLevelButton.isEnabled = false nextLevelButton.setOnClickListener { showInterstitial() } levelTextView = binding.level // Create the text view to show the level number. currentLevel = START_LEVEL // Toasts the test ad message on the screen. Remove this after defining your own ad unit ID. Toast.makeText(this, TOAST_TEXT, Toast.LENGTH_LONG).show() } override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) return true } override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> true else -> super.onOptionsItemSelected(item) } private fun loadInterstitialAd() { val adRequest = AdRequest.Builder().build() InterstitialAd.load(this, getString(R.string.interstitial_ad_unit_id), adRequest, object : InterstitialAdLoadCallback() { override fun onAdLoaded(ad: InterstitialAd) { // The interstitialAd reference will be null until // an ad is loaded. interstitialAd = ad nextLevelButton.setEnabled(true) Toast.makeText(this@MainActivity, "onAdLoaded()", Toast.LENGTH_SHORT) .show() ad.setFullScreenContentCallback( object : FullScreenContentCallback() { override fun onAdDismissedFullScreenContent() { // Called when fullscreen content is dismissed. // Make sure to set your reference to null so you don't // show it a second time. interstitialAd = null Log.d(TAG, "The ad was dismissed.") } override fun onAdFailedToShowFullScreenContent(adError: AdError) { // Called when fullscreen content failed to show. // Make sure to set your reference to null so you don't // show it a second time. interstitialAd = null Log.d(TAG, "The ad failed to show.") } override fun onAdShowedFullScreenContent() { // Called when fullscreen content is shown. Log.d(TAG, "The ad was shown.") } }) } override fun onAdFailedToLoad(loadAdError: LoadAdError) { // Handle the error Log.i(TAG, loadAdError.message) interstitialAd = null nextLevelButton.setEnabled(true) val error: String = String.format( Locale.ENGLISH, "domain: %s, code: %d, message: %s", loadAdError.domain, loadAdError.code, loadAdError.message ) Toast.makeText( this@MainActivity, "onAdFailedToLoad() with error: $error", Toast.LENGTH_SHORT ) .show() } }) } private fun showInterstitial() { // Show the ad if it"s ready. Otherwise toast and reload the ad. if (interstitialAd != null) { interstitialAd!!.show(this) } else { Toast.makeText(this, "Ad did not load", Toast.LENGTH_SHORT).show() goToNextLevel() } } private fun goToNextLevel() { // Show the next level and reload the ad to prepare for the level after. levelTextView.text = "Level " + (++currentLevel) if (interstitialAd == null) { loadInterstitialAd() } } }

試したこと

Android StudioでGoogle AdMob Ads Activityプロジェクトを新規作成してそのままビルドしてapkをインストールして実行してlogcatでエラーメッセージを拾いました。

以下のような質問にはリアクションをつけましょう

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

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Android

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

Android Studio

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

Kotlin

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