AdActivity未在清单中声明......但我使用sdk v 3?

时间:2012-01-07 07:16:09

标签: android android-manifest admob

关于这个主题有很多有用的帖子,但都要求我使用比我编写应用程序更晚的sdk。为了尽可能使我的应用程序向后兼容,我选择使用Android 1.5(sdk)创建它v 3)。 使用建议用于声明清单的代码我在eclipse中遇到了一些问题,因为代码引用了以后在Android 1.5中不可用的sdk函数

    <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
        />

Eclipse告诉我,定位后的所有内容都是问题。

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

在清单的代码或如何为以后的目标编译时,有人可以指出我正确的方向吗?

干杯!!

好的.....这里是清单中的代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ohmywebdesign.trigsolver"
android:versionCode="5"
android:versionName="1.3" >
<uses-sdk android:minSdkVersion="8" />
<uses-sdk android:targetSdkVersion="8" />
<uses-sdk android:maxSdkVersion="15" />

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

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <meta-data android:value="YOURPUBIDHERE" android:name="ADMOB_PUBLISHER_ID" />
    <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
    <activity
        android:name=".Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

2 个答案:

答案 0 :(得分:0)

这样的事情:

<uses-sdk android:minSdkVersion="3" />
<uses-sdk android:targetSdkVersion="8" />
<uses-sdk android:maxSdkVersion="15" />

在你的清单中,你可以做你想做的事。

另外,请确保您拥有最新的AdMob SDK,即版本4.3.1 http://code.google.com/mobile/ads/download.html

并且包括

<meta-data android:value="YOURPUBIDHERE" android:name="ADMOB_PUBLISHER_ID" />

答案 1 :(得分:0)

正如MisterSquonk对该问题的评论所述,一些configChanges值的API级别高于1.5。仅仅更改清单中的最小/目标/最大API级别的值不会解决您的问题,您必须确保构建对照声明这些值的SDK级别。

对于基于Ant的构建,这将需要在target中更改project.properties属性的值;我没有将Eclipse用于我的Android项目,所以我不是百分百肯定,但是这里的Eclipse/ADT documentation摘录似乎与您需要做的事情有关:

  

注意:您可以随时更改项目的构建目标:在包资源管理器中右键单击项目,选择属性,选择 Android ,然后检查所需的项目目标。

当然,如果这样做,您必须确保不要直接使用API​​级别高于最低级别的任何类/方法,否则在运行较低API级别的设备上运行时,您的应用程序将在运行时失败。

请记住,清单仅在运行时在设备上使用(以及大多数分销渠道,例如Android Market)。构建目标是完全独立的,在编译时使用。