android - 使用AdMob打开Android应用时崩溃

标签 android crash libgdx admob

我使用libGDX开发了一个Android应用,并向其中添加了Admob,但是当我在Android上打开APK时,它崩溃了,表明该过程已停止。

这是我在Android项目中的代码。

public class MainActivity extends AndroidApplication{

protected AdView adview;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = true;


    final TelephonyManager tm =(TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
    String deviceid = tm.getDeviceId();


    RelativeLayout layout = new RelativeLayout(this);

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    setContentView(graphics.getView(), createLayoutParams());
    View gameview = initializeForView(new BalloonBreakout(), false);


    adview = new AdView(this);
    adview.setAdSize(AdSize.BANNER);
    adview.setAdUnitId("ca-app-pub-6258330641042393/6188790266");

    adview.loadAd(new AdRequest.Builder().addTestDevice(deviceid).build());

    RelativeLayout.LayoutParams adparams = new RelativeLayout.LayoutParams(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 14);
    adparams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    adparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

    layout.addView(gameview);
    layout.addView(adview, adparams);
    setContentView(layout);
    }
}

我不确定为什么会崩溃,任何帮助将不胜感激。

更新:

我在这里有错误日志,但是我不知道为什么我得到了空指针。
E( 3875) Caused by: java.lang.NullPointerException  (AndroidRuntime)
E( 3875)    at com.sevenbit.Balloon_Breakout.MainActivity.onCreate(MainActivity.java:37)(AndroidRuntime)

第37行是:
setContentView(graphics.getView(), createLayoutParams());

但是,当我删除此行时,在同一位置,第37行仍然有一个空指针。

有任何想法吗?

最佳答案

您的问题(就像我最近看到的所有其他libgdx帖子一样)是libgdx AndroidApplication#initializeForView调用Activity#setContextView来设置自己的布局(不应该这样做)。然后,使用自己的布局调用setContextView。

它可能崩溃是因为某些libgdx代码假定它的布局对象已被加载,但是它不存在,因为您已用自己的替换了它。

关于android - 使用AdMob打开Android应用时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699242/

相关文章:

android - 在异步任务中启动新线程

android - 重建应用程序时显示 "Program type already present: android.arch.core.BuildConfig "错误

java - Libgdx 窗口调整大小 : Keeping Aspect Ratio

java - 在运行时/步骤期间创建主体? Libgdx box2d

java - LibGDX Masking 在 Android 中表现不正确

java - 如何解决java.lang.String类型的org.json.JSONException : Value <! DOCTYPE无法转换为JSONObject

java - SkImageDecoder::Factory 返回 null 并且 URL 正确

ios - 为什么我的 Xcode 6 会崩溃?

linux - SublimeText 总是在启动后崩溃

ios5 - NSArray 导致 viewDidLoad 崩溃