Android AdMob简单教程不';行不通
我正在为Android开发一款游戏的早期过程中,我正在尝试使用AdMob整合一个广告横幅。我直接从官方网站上的教程下载了这个示例,所以我想我在这里做的任何错误都是基本的,因为在我的Galaxy S2设备上调试几秒钟后它就会崩溃。请帮忙Android AdMob简单教程不';行不通,android,eclipse,jar,admob,adview,Android,Eclipse,Jar,Admob,Adview,我正在为Android开发一款游戏的早期过程中,我正在尝试使用AdMob整合一个广告横幅。我直接从官方网站上的教程下载了这个示例,所以我想我在这里做的任何错误都是基本的,因为在我的Galaxy S2设备上调试几秒钟后它就会崩溃。请帮忙 package com.google.example.ads.fundamentals; import com.google.ads.AdRequest; import com.google.ads.AdSize; import com.google.ads.A
package com.google.example.ads.fundamentals;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.LinearLayout;
/**
* A simple {@link Activity} that embeds an AdView.
*/
public class BannerSample extends Activity {
private AdView adView;
private final TelephonyManager tm =
(TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
private final String AD_MOB_ID = "my AdMob ID goes here";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Create an ad.
adView = new AdView(this, AdSize.BANNER, AD_MOB_ID);
// Add the AdView to the view hierarchy. The view will have no size
// until the ad is loaded.
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
layout.addView(adView);
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(tm.getDeviceId());
// Start loading the ad in the background.
adView.loadAd(adRequest);
}
/** Called before the activity is destroyed. */
@Override
public void onDestroy() {
// Destroy the AdView.
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
}
屏幕截图中的Logcat数据为
编辑:还添加了Manifest.XML,我怀疑这是导致问题的原因——令人惊讶的是,来自官方网站的示例中的Manifest.XML有一个错误(根据Eclipse),因此我不得不对其进行一些修改:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="3"
android:targetSdkVersion="13" />
<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">
<activity
android:name=".HelloAdMobActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:screenOrientation="landscape" >
<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"
android:screenOrientation="landscape" >
</activity>
</application>
</manifest>
Logcat信息将非常有用,但我相信以下两个原因之一:
libs/
文件夹中。这里有两个选项可以解决此问题:将其添加到libs/
文件夹,或转到属性->Java构建路径->订购并导出并检查AdMob jarandroid:id=“LinearLayout”
的LinearLayout。这不太可能,因为示例项目应该包括这一点好的,原来问题出在
tm.getDeviceId()
,无论出于何种原因导致程序崩溃。您需要添加以下权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
欢迎使用堆栈溢出!你有关于坠机的任何logcat信息吗?你好,谢谢你的回答。我在Properties->Java Build Path->Order and Export中检查了AdMob jar,我的XML中有一个id为的LinearLayout,如您所说。不幸的是,它仍然被压碎。该应用加载了一条横幅,在蓝色背景上显示“Android基础知识”文本,几秒钟后就会消失。然后,应用程序会弹出“不幸的是,AndroidFundamentals已停止”的弹出窗口。此外,如果我尝试点击“后退”按钮,它不会响应,几秒钟后会将其压碎。我很想给您提供更多信息,但我不知道还需要添加什么-我完全按照教程建议进行了操作。对不起,我将日志附在了问题上