AdRequest.Builder无法解析为某种类型

时间:2013-12-16 09:49:05

标签: android admob

我正在将AdMob整合到我的应用中。我已经按照开发者页面中的步骤进行操作了。但是AdRequest.Builder()用红色加下划线,它说:

  

无法将AdRequest解析为类型

  

AdRequest.Builder无法解析为某种类型。

可能是什么问题?

import com.google.ads.AdRequest;
import com.google.ads.AdView;


public class FireRoomActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fire_room);

        // Look up the AdView as a resource and load a request.
        AdView adView = (AdView)this.findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();   
        adView.loadAd(adRequest);
    }

在xml中,我已经显示了这样的内容:

<com.google.android.gms.ads.AdView android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="bla bla"
                     ads:adSize="BANNER"/>

3 个答案:

答案 0 :(得分:34)

您的代码混合了Admob SDK (Google Play)Android (6.4.1 and earlier SDKs)

使用

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

AdRequest adRequest = new AdRequest.Builder().build();

<com.google.android.gms.ads.AdView android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="bla bla"
                     ads:adSize="BANNER"/>

如果您使用Admob SDK(Google Play)

或使用

import com.google.ads.AdRequest;
import com.google.ads.AdView;

AdRequest adRequest = new AdRequest();

<com.google.ads.AdView android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="bla bla"
                     ads:adSize="BANNER"/>

如果你使用earlies SDK

对于Admob SDK(Google Play),不要忘记更改名称空间

xmlns:ads="http://schemas.android.com/apk/res-auto"

答案 1 :(得分:4)

试试这个..

AdRequest adRequest = new AdRequest();   
AdView adView = (AdView)this.findViewById(R.id.adView);           
adView.loadAd(adRequest);

注意:

  1. 确保您已library中包含必要的projectmanifest中的权限

  2. 同时检查您是否在 xml 中提供了正确的ad-mob ID。

  3. 编辑:

    要添加测试设备,您可以尝试

    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);  //for emulators
    adRequest.addTestDevice("device_id");              //for real device, enter device id
    

答案 2 :(得分:0)

您可能遇到Eclips的图书馆参考错误。这将在以下开发人员页面的步骤中返回此类错误。

转到“项目属性”,然后单击“Android”选项卡。 enter image description here

检查是否存在Red十字标记。

如果是的话,你肯定会遇到它。

导入现有项目(google-play-services-lib)时,Eclipse会做一些奇怪的事情,特别是当您尝试导入然后允许项目自动“复制”到您的工作区时。

To Solve this,

  
      
  1. 从您的工作区中删除所有google-play-services项目。
  2.   
  3. 关闭Eclipse。
  4.   
  5. 将google-play-services-lib文件夹(.... sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib)手动复制到工作区中。
  6.   
  7. 打开Eclipse
  8.   

现在添加Library From your workspace as existing project而不是

....sdk\extras\google\google_play_services\libproject\google-play-services_lib

最后,像以前一样从项目属性添加项目参考库。

  

请记住,开发者页面上的说明完全没有这个错误。所以,按照所有其他指示正如Page所说的那样。