Admobs需要我已拥有的权限

时间:2012-12-25 14:04:39

标签: android admob

我正在尝试在Android上使用AdMobs。这是我的表现:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.krinsen.javadocreader"
    android:versionCode="2"
    android:versionName="1.0.1" >

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:name=".app.SimpleApp"
        android:hardwareAccelerated="true"
        android:icon="@drawable/icon_about"
        android:label="@string/app_name"
        android:theme="@style/Theme.Javadoc" >
        <activity
            android:name=".ui.DocTypeActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="android.app.default_searchable"
                android:value=".ui.SearchableJavadocActivity" />
        </activity>
<activity
            android:name="com.google.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
</application>
</manifest>

这是我的观点:

<com.google.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/ads"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/ad_unit_id"
    ads:testDevices="@string/test_devices"
    ads:loadAdOnCreate="true" />

我有最新的admob库。 我仍然在logcat中得到这个奇怪的错误:

INTERNET permissions must be enabled in AndroidManifest.xml

我有互联网许可。我的应用程序使用互联网并使用它非常好。只有广告不想合作。我在哪里可以找到一个bug?

5 个答案:

答案 0 :(得分:5)

我认为您已将permissions添加到错误的位置,添加完整的AndroidManifest.xml文件,

相反,您的manifestFile应该如下所示:

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

        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".CouponManager"
                      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.ads.AdActivity"
                  android:configChanges="keyboard|keyboardHidden|orientation"/>

        </application>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

</manifest>

在您的Layout中,您应该在namespace代码中包含以下Layout代码:

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

注意:请参阅此 tutorial 了解详情

答案 1 :(得分:1)

请尝试复制此内容,然后检查发生了什么,因为我没有在您的代码中发现任何错误。

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

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="16" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.xChinmoy.babywallpaperhd.BabyWallPaperActivity"
            android:screenOrientation="portrait"
            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.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" >
        </activity>
    </application>

</manifest>

并且视图是

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <com.google.ads.AdView
        android:id="@+id/advw"
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="a150cd49f90925f"
    ads:backgroundColor="#FFFF00"
    ads:loadAdOnCreate="true"
    ads:primaryTextColor="#FFFFFF"
    ads:refreshInterval="30"
    ads:secondaryTextColor="#CCCCCC"
    android:visibility="visible" />                    
 </RelativeLayout>

我昨天创建了它并完美地显示了add,而admob jar版本是6.0.1。

答案 2 :(得分:0)

仙人,

admob需要您的 adUnitId 才能使用您的帐户。

获取与您的帐户关联的adob adUnitId并使用它。

如果您目前正在开发中,请不要忘记在XML中添加 ad:testDevices

Chinmoy的代码片段可以休息。

在admob中创建一个应用程序条目,并从该条目的设置中获取adUnitId。

希望这会对你有所帮助。

答案 3 :(得分:0)

只需尝试在Manifest.xml标记之外的application文件中添加以下行。

<meta-data
    android:name="ADMOB_ALLOW_LOCATION_FOR_ADS"
    android:value="true" />

答案 4 :(得分:0)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

只需添加最后两行。我解决了这个问题。