繁体   English   中英

空的LinearLayout?

[英]Null LinearLayout?

我正在尝试使用LinearLayout在移动设备上实施广告,因为我在Google编写的教程中看到了它。 但是,我的LinearLayout一直返回null,而且很长一段时间都找不到解决方案。

这是我的MainActivity.java:

package com.me.mygdxgame;


import android.os.Bundle;
import android.widget.LinearLayout;
//import android.widget.RelativeLayout;

//import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
//import com.google.ads.AdSize;
//import com.google.ads.AdView;
import com.me.mygdxgame.R;

public class MainActivity extends AndroidApplication {

    AdView adView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

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

        initialize(new MyGame(), cfg);

        adView = new AdView(this);
        adView.setAdSize(AdSize.BANNER);
        adView.setAdUnitId("XXXXConfidential Ad Unit IDXXXX");

        LinearLayout layout = (LinearLayout) findViewById(R.id.normal);
//      layout.addView(adView);
        if (layout ==null){
            System.out.println("layout doesn't work");
        }
        if (layout !=null){
            System.out.println("layout works");
        }
        if (adView == null){
            System.out.println("adView doesn't work");
        }
        if (adView != null){
            System.out.println("adView works");
        }

        AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice("XXXXConfidential Test Device CodeXXXXXXX")
        .build();

        if (adRequest == null){
            System.out.println("adRequest doesn't work");
        }
        if (adRequest != null){
            System.out.println("adRequest works");
        }

        adView.loadAd(adRequest);
//      setContentView(layout);
    }

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

System.out.println告诉我,除layout外,其他所有功能均正常

这是我的main.xml:

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

这是我的R.java文件中的代码段,位于我的程序包中:

public static final class id {
    public static final int hybrid=0x7f050004;
    public static final int none=0x7f050000;
    public static final int normal=0x7f050001;
    public static final int satellite=0x7f050002;
    public static final int terrain=0x7f050003;
}
public static final class integer {
    public static final int google_play_services_version=0x7f070000;
}
public static final class layout {
    public static final int main=0x7f030000;
}

我对XML一点都不熟悉,所以我不知道问题出在哪里。 我已经非常仔细地遵循了所有教程,但是我的layout仍然返回null。 有什么帮助吗? 我已经尝试解决超过24小时...

您不会显示#initialize的代码,但我愿意打赌,在该方法的某个地方,您将再次调用#setContentView并覆盖R.layout.main

这就是为什么找不到R.is.normal的原因,因为在用R.layout.main替​​换的任何内容中都不存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM