【问题标题】:Android - New AdmobApi not working for ads in androidAndroid - 新的 AdmobApi 不适用于 android 中的广告
【发布时间】:2021-06-04 17:15:38
【问题描述】:

我正在开发最新的 android SDK 23 并尝试在我的应用中添加 admob 广告。所以我也关注了 admob guied line 和 video guied 但我仍然收到错误

错误

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.adtest/com.android.adtest.MainActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class com.google.android.gms.ads.AdView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
    at android.app.ActivityThread.access$600(ActivityThread.java:162)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
    at android.os.Handler.dispatchMessage(Handler.java:107)
Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class com.google.android.gms.ads.AdView
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698)
    at android.app.Activity.performCreate(Activity.java:5122)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
    ... 11 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.AdView" on path: DexPathList[[zip file "/data/app/com.android.adtest-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.android.adtest-1, /vendor/lib, /system/lib]]
    at android.view.LayoutInflater.createView(LayoutInflater.java:552)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
    ... 24 more

我不知道我哪里出错了。 请帮帮我。 提前致谢。

即使我能够在图形布局中看到 adView。它在android中显示灰色布局。

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="AAA"/>
    <com.google.android.gms.ads.AdView android:id="@+id/adView"
                           android:layout_width="match_parent"
                           android:layout_height="wrap_content"
                           ads:adSize="BANNER"
                           ads:adUnitId="MY ID"/>
</LinearLayout>

我可以在我的 .java 文件中找到 com.google.android.gms.ads.AdView 但在 .xml 文件中找不到

ma​​nifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.adtest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version"/>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.google.android.gms.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    </application>

</manifest>

【问题讨论】:

  • 请张贴您的清单 xml
  • 请查找 manifest.xml
  • “我的身份证”只是在这里张贴的假货,不是吗?
  • @Opiatefuchs :是的,只是替换我的 admob id。
  • 你确定你有最新的谷歌播放服务包吗?

标签: android admob ads


【解决方案1】:

右键单击您的项目 -> 构建路径 -> 配置构建路径 -> 订购和导出选项卡。

确保选中“Android Private Libraries”以进行导出。

如果您从 libs/ 文件夹中添加了任何库,请将它们删除,因为它们会自动添加到“Android 私有库”部分。

在布局文件中,试试这个。

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

而不是

xmlns:ads="http://schemas.android.com/apk/res-auto"

Google-play-services 文件夹有问题,请检查。并改变。

【讨论】:

  • 我也试过这个。 & 它也不适合我。
  • 尝试删除gen文件夹,然后清理项目
  • 同样的问题没有变化。
  • 我也看过这个并尝试过。我从最近 3 天开始尝试这个。所以搜索了一切。 :(
【解决方案2】:

关注link

您需要在 onCreate() 中添加一些 java 代码,并尝试按照右栏中的步骤一一进行

// Java code required.
// testDevices and loadAdOnCreate attributes are
// no longer available.
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("TEST_DEVICE_ID")
.build();
adView.loadAd(adRequest);

【讨论】:

  • 您的应用程序的同一工作区中是否有 Google Play 服务库?
  • 是的。我已经复制了那个。并从同一个文件夹中导入
【解决方案3】:

如果将代码从一个项目复制到另一个项目,则需要重新构建应用程序

在 Android Studio 菜单上 > 点击 Build> Rebuild Project

【讨论】:

    猜你喜欢
    • 2017-08-22
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多