java - 在 PhoneGap 应用中包含 Admob 时出错

标签 java android cordova admob

我按照说明将 admob 添加到 PhoneGap Android 应用程序中 here ,但它给了我编译时错误。有什么我应该做的吗?

我收到如下错误:

  1. adView = new AdView(this, AdSize.BANNER, AdMob_Ad_Unit); 错误:“构造函数 AdView(CordovaApp, AdSize, String) 未定义

  2. AdRequest 请求 = new AdRequest(); 错误:构造函数 AdRequest() 不可见

  3. adView.loadAd(请求); 错误:AdView 类型中的方法 loadAd(AdRequest) 不适用于参数 (AdRequest)

完整代码如下。请帮忙。谢谢

   package com.example.hello;

    import android.os.Bundle;
    import android.os.Handler;

    import org.apache.cordova.*;
    import com.google.ads.*;
    import com.google.ads.AdRequest;
    import com.google.ads.AdSize;
    import com.google.android.gms.ads.*;
    import android.widget.LinearLayout;


    public class CordovaApp extends CordovaActivity
    {
        private static final String AdMob_Ad_Unit = "ca-app-pub-7789543298167063/2036477434";
        private Handler mHandler = new Handler();

        private AdView adView;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.loadUrl("file:///android_asset/www/index.html");

            mHandler.postDelayed(new Runnable() {
                public void run() {
                    doAdMob();
                }
            }, 5000);         
        }

        private void doAdMob() {
            // Create the adView
            adView = new AdView(this, AdSize.BANNER, AdMob_Ad_Unit);
            // Lookup your LinearLayout - get the super.root
            LinearLayout layout = super.root;
            // Add the adView to it
            layout.addView(adView);
            // This centers the ads in landscape mode.        
            layout.setHorizontalGravity(android.view.Gravity.CENTER_HORIZONTAL);
            // Initiate a generic request to load it with an ad
            AdRequest request = new AdRequest();
            // and finally...     
            adView.loadAd(request);                    
        }
    }

最佳答案

基本上,以 com.google.ads 开头的类来自 6.4.1 或更早版本的 Admob。您所指的教程最后一次更新是在两年前。

如果您使用的是 Google Play 服务中的最新 AdMob 库,则需要删除要导入的旧类。

替换这些代码

import com.google.ads.*;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.android.gms.ads.*;

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

此外,请尝试按如下方式创建您的 AdRequest:

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

更新:

尝试以下代码

adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId(AdMob_Ad_Unit);

关于java - 在 PhoneGap 应用中包含 Admob 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27657399/

相关文章:

java - 使用 docker 执行 mkdir 命令

android - 来电未显示在锁定屏幕上

android - 如何获取单选警报对话框的选定项目?

Android URL 方案 : intent. getData() == null (PhoneGap)

java - 如何设置具有 IDE 支持的 Cordova 插件项目?

cordova - 适用于 Phonegap/Cordova 应用的 Firebase 分析

java - 如何指示 jackson 序列化一个对象内的字段而不是它自己的对象?

java - 按值列排序 CSV Java

Android:Dialog 和 onResume() 方法中的 requestWindowFeature 错误

java - CriteriaQuery 带 max 的子查询