我一直在尝试将AdMob功能实施到我的项目中并继续打砖墙。我一直在网上研究,并注意到用户看到的类似问题,以及他们的解决方案,但我似乎已经到目前为止,然后不能完全让它工作。我希望有人能够指出我的一些愚蠢的错误!
顺便提一下,我正在测试运行Android 2.3.3的HTC Desire(Bravo)并使用最新的AdMob SDK(4.3.1)。
我可以从我的AdMob帐户中看到服务器正在看到广告请求,但我的应用程序中的广告对象一直声明我需要在清单中声明AdActivity以及configChange参数。两者都在那里!
非常感谢任何帮助。下面是我的代码的相关(煮沸)部分;
=================== AndroidManifest.xml ====================== ===========
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="<my package name>"
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:debuggable="false">
<activity
android:label="@string/app_name"
android:name=".MainActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- AdMob stuff -->
<activity android:name="com.google.ads.AdActivity"
android:configChanges="orientation|keyboard|keyboardHidden"/>
</application>
</manifest>
====================== MainActivity.java =================== ==============
package my.package.name;
import com.google.ads.AdRequest;
import com.google.ads.AdView;
public class MainActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.choice_layout_main);
AdView adView = (AdView) this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
}
}
================ choice_layout_main.xml ========================= =====
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_main"
android:gravity="top"
android:orientation="vertical"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical"
android:textColor="#FFFFFFFF">
<RelativeLayout
android:id="@+id/MainLayout"
android:padding="50sp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:backgroundColor="#000000"
ads:primaryTextColor="#FFFFFF"
ads:secondaryTextColor="#CCCCCC"
ads:adSize="BANNER"
ads:refreshInterval="30"
ads:adUnitId="<my id>"
ads:loadAdOnCreate="true"
/>
</RelativeLayout>
</ScrollView>
似乎其他开发者展示的所有其他解决方案对我来说都不太合适,因此我认为它必须是一些我忽视的愚蠢点!
任何帮助对我的理智都有好处!
干杯, 利
答案 0 :(得分:1)
如果您使用的是4.3.1,您的活动可能需要在configChanges下面添加一些额外的项目,如下所示:
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
另外,如果你这样做并且你没有在project.properties文件中设置目标(假设你有一个3.2或更高的Android SDK,可能需要设置target=android-13
或更高版本。)
在博文here中找到此信息。