为什么我在androidmanifest.xml中使用configchanges声明了adactivity这个错误

时间:2013-01-06 15:37:18

标签: java android android-activity android-manifest admob

Android 2.1

googleAdmobAdsAsdk6.2.1.jar

我的问题显示在我的应用中测试广告时 - >错误 - >你必须在androidmanifest.xml中使用configchanges

声明adactivity

我尝试添加像这样的完整活动

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

告诉我这个错误

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

的AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
    -->
    <manifest 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:windowSoftInputMode="adjustPan"
  package="com.afrogfx.VerbTenses" 
  android:versionName="1.1" 
  android:versionCode="5" >

<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:resizeable="true"
    android:anyDensity="true"
    />

<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" android:allowBackup="true" >



    <activity android:name="VerbTenses" android:label="@string/app_name"
            android:theme="@android:style/Theme.Black.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|keyboard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
     <!-- AdMobActivity definition -->
    <activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|"/>

</application>

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

mainactivity.java

    /*
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
    */

    package com.afrogfx.VerbTenses;

    import android.app.Activity;
    import android.os.Bundle;
    import com.google.ads.*;

    import org.apache.cordova.*;

    @SuppressWarnings("unused")
    public class VerbTenses extends DroidGap
    {
private static final String AdMob_Ad_Unit = "a150d4ba1fd9a78";
private AdView adView;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    super.loadUrl("file:///android_asset/www/overview.html");

    //admob
    adView = new AdView(this, AdSize.BANNER, AdMob_Ad_Unit_HERE); 
    super.root.addView(adView); 
    AdRequest request = new AdRequest();
    //request.setTesting(false);
    adView.loadAd(request);
}
    }

布局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/lib/com.google.ads" 
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
    <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
    </LinearLayout>

logcat的

    01-06 17:15:48.105: I/dalvikvm(283): Could not find method android.webkit.WebView.<init>, referenced from method org.apache.cordova.CordovaWebView.<init>
    01-06 17:15:48.105: W/dalvikvm(283): VFY: unable to resolve direct method 417: Landroid/webkit/WebView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;IZ)V
    01-06 17:15:48.105: D/dalvikvm(283): VFY: replacing opcode 0x70 at 0x0001
    01-06 17:15:48.105: D/dalvikvm(283): VFY: dead code 0x0004-005b in Lorg/apache/cordova/CordovaWebView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;IZ)V
    01-06 17:15:48.395: I/CordovaLog(283): Changing log level to DEBUG(3)
    01-06 17:15:48.395: I/CordovaLog(283): Found preference for useBrowserHistory=true
    01-06 17:15:48.436: D/CordovaLog(283): Found preference for useBrowserHistory=true
    01-06 17:15:48.436: I/CordovaLog(283): Found preference for exit-on-suspend=false
    01-06 17:15:48.436: D/CordovaLog(283): Found preference for exit-on-suspend=false
    01-06 17:15:48.505: D/JsMessageQueue(283): Set native->JS mode to 2
    01-06 17:15:48.505: I/CordovaWebView(283): Disabled addJavascriptInterface() bridge since Android version is old.
    01-06 17:15:48.525: D/DroidGap(283): DroidGap.init()
    01-06 17:15:48.544: D/CordovaWebView(283): >>> loadUrl(file:///android_asset/www/overview.html)
    01-06 17:15:48.544: D/PluginManager(283): init()
    01-06 17:15:48.614: D/CordovaWebView(283): >>> loadUrlNow()
    01-06 17:15:48.645: E/Ads(283): The android:configChanges value of the com.google.ads.AdActivity must include screenLayout.
    01-06 17:15:48.645: E/Ads(283): The android:configChanges value of the com.google.ads.AdActivity must include uiMode.
    01-06 17:15:48.645: E/Ads(283): The android:configChanges value of the com.google.ads.AdActivity must include screenSize.
    01-06 17:15:48.654: E/Ads(283): The android:configChanges value of the com.google.ads.AdActivity must include smallestScreenSize.
    01-06 17:15:48.654: E/Ads(283): You must have AdActivity declared in AndroidManifest.xml with configChanges.
    01-06 17:15:49.284: D/DroidGap(283): Resuming the App
    01-06 17:15:49.435: D/dalvikvm(283): GC_FOR_MALLOC freed 3187 objects / 290448 bytes in 101ms
    01-06 17:15:49.515: D/DroidGap(283): onMessage(onPageStarted,file:///android_asset/www/overview.html)
    01-06 17:15:49.585: D/SoftKeyboardDetect(283): Ignore this event
    01-06 17:15:49.704: D/SoftKeyboardDetect(283): Ignore this event
    01-06 17:15:50.444: D/dalvikvm(283): GC_FOR_MALLOC freed 1079 objects / 131560 bytes in 120ms
    01-06 17:15:50.465: D/webviewglue(283): nativeDestroy view: 0x26b710
    01-06 17:15:57.385: D/CordovaLog(283): ReferenceError: Can't find variable: setpagenum
    01-06 17:15:57.385: D/CordovaLog(283): file:///android_asset/www/overview.html: Line 35 : ReferenceError: Can't find variable: setpagenum
    01-06 17:15:57.385: E/Web Console(283): ReferenceError: Can't find variable: setpagenum at file:///android_asset/www/overview.html:35
    01-06 17:15:57.396: D/Cordova(283): onPageFinished(file:///android_asset/www/overview.html)
    01-06 17:15:57.396: D/DroidGap(283): onMessage(onNativeReady,null)
    01-06 17:15:57.405: D/DroidGap(283): onMessage(onPageFinished,file:///android_asset/www/overview.html)
    01-06 17:15:59.479: D/DroidGap(283): onMessage(spinner,stop)

4 个答案:

答案 0 :(得分:1)

您错误地在 android:configChanges 中添加了一个“|”,这就是为什么它以字符串形式读取所以请删除它。

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

请删除此“|”最后一个字符,并写为..

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

这样做之后清理项目,希望它能为你工作.. :))

答案 1 :(得分:1)

您需要拥有以下所有7个项目:

  1. 键盘
  2. keyboardHidden
  3. 取向
  4. 屏幕布置
  5. uiMode
  6. 屏幕尺寸
  7. smallestScreenSize
  8. 例如:

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

答案 2 :(得分:0)

尝试更改minSdkVersion=17文件中的Manifest

答案 3 :(得分:0)

尝试将project.properties文件中的项目目标更改为

# Project target.

target=android-13