Android - 新的AdmobApi不适用于Android中的广告

时间:2014-09-09 11:11:10

标签: android admob advertising

我正在开发最新的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文件中找到

的manifest.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>

enter image description here

3 个答案:

答案 0 :(得分:1)

右键点击您的项目 - &gt;构建路径 - &gt;配置构建路径 - &gt;订单和导出标签。

确保&#34; Android私人图书馆&#34;检查导出。

如果您已经从libs /文件夹中添加了任何库,请将其删除,因为它们会自动添加到&#34; Android私有库&#34;部分。

在布局文件中

,试试这个。

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

而不是

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

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

答案 1 :(得分:0)

关注此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);

答案 2 :(得分:0)

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

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