【问题标题】:android admob integration issue - string types not allowedandroid admob 集成问题 - 不允许使用字符串类型
【发布时间】:2012-08-18 04:56:21
【问题描述】:

我第一次尝试集成 admob。我遵循了文档规则here,也看到了severalrelatedpages,但我似乎仍然做错了什么。
我正在使用 GoogleAdMobAdsSdk-6.1.0.jar,以及 android sdk 版本 13 (Android 3.2)。

我包含了一些我发现需要从各种来源获得的东西。

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="13" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<activity android:name="com.google.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScre‌​enSize"  />

在我的 AndroidManifest.xml 中。

我包括

target=android-13

在我的 project.properties 中。

以上配置无法编译。我在 Eclipse(版本:4.2.0)中收到错误,说明如下:

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScre‌​enSize'

如果我把它改成旧样式

android:configChanges="keyboard|keyboardHidden|orientation"

项目编译得很好,但是当我开始我的活动时,我遇到了以下问题:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/Aqua"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/adLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </LinearLayout>

</LinearLayout>

我的活动中的代码如下所示:

public class TutorialActivity extends Activity {

    private static final String PUBLISHER_ID = "blah"; //omitted
    private AdView adView;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.tutorial_layout);
        AdRequest request = new AdRequest();
        request.addTestDevice("what i believe is my device id");

        adView = new AdView(this, AdSize.BANNER, PUBLISHER_ID);

        LinearLayout layout = (LinearLayout) findViewById(R.id.adLayout);
        layout.addView(adView);
        adView.loadAd(request);
    }

    @Override
    public void onDestroy() {
        if (adView != null) {
            adView.destroy();
        }
        super.onDestroy();
    }

}

当我运行此代码并导航到我的活动时,我看到了屏幕顶部的广告框,正如我所期望的那样,其中包含以下文本: 您必须在 AndroidManifest.xml 中使用 configChanges 声明 AdActivity。

我是一个困惑的人。这是我在将其发布到谷歌应用商店之前最不想包含在我的应用中的东西,非常感谢任何建议或帮助。 如果我遗漏了任何内容,我深表歉意。

【问题讨论】:

标签: android admob


【解决方案1】:

我遇到了同样的问题。我会告诉你我做了什么。

在eclipse中右键项目文件夹

  • -属性
  • -选择安卓
  • -选择固件 3.2 或更高版本

然后在清单中使用它

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"

就是这样

【讨论】:

  • 如果找不到 3.2 或更高版本,请从 sdk 管理器下载它
  • 我不知道为什么会这样,因为这正是我已经启用的选项,但它确实有效。我进入属性,选择android,看到我已经选择了3.2,但是当我点击Ok时,编译错误消失了。非常感谢!这比科学更接近魔法,但我很感激你的帮助。如果允许,我会在 2 分钟内接受您的回答。
  • 哈哈哈 =D 我知道你的感受。由于那个确定按钮,您遇到了这个问题。说真的,Eclipse 真的很愚蠢!
  • 太糟糕了,您的应用现在与 3.2 之前的版本不兼容
  • 可以在AndroidManifest.xml中设置minSDK!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 2016-08-06
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多