Nano Hash - криптовалюты, майнинг, программирование

Ошибка включения Admob в приложение PhoneGap

Я выполнил инструкции по добавлению admob в приложение PhoneGap для Android, как написано здесь, но это дает мне ошибки времени компиляции. Есть ли что-нибудь, что я должен сделать?

Я получаю следующие ошибки:

  1. adView = new AdView(this, AdSize.BANNER, AdMob_Ad_Unit); Ошибка: "Конструктор AdView(CordovaApp, AdSize, String) не определен"

  2. AdRequest request = new AdRequest(); Ошибка: конструктор AdRequest() не виден

  3. adView.loadAd(request); Ошибка: Метод loadAd(AdRequest) в типе AdView неприменим для аргументов (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);                    
        }
    }
26.12.2014


Ответы:


1

По сути, эти классы, начинающиеся с com.google.ads, относятся к 6.4.1 или более ранним версиям Admob. Учебник, на который вы ссылаетесь, был последний раз обновлен два года назад.

Если вы используете последнюю версию библиотеки AdMob из сервисов Google Play, вам необходимо удалить те старые классы, которые вы импортируете.

Замените этот код

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);
26.12.2014
  • Большое спасибо, @SLee. Однако теперь у меня осталась 1-я ошибка. Что вы предлагаете мне делать? - adView = new AdView(this, AdSize.BANNER, AdMob_Ad_Unit); Ошибка: конструктор AdView(CordovaApp, AdSize, String) не определен 27.12.2014
  • Я получил эту ошибку на adView.setAdSize(AdSize.BANNER); - метод setAdSize(AdSize) в типе AdView не применим для аргументов (AdSize) 27.12.2014
  • Вы удалили те старые классы, которые вы импортировали? Эта ошибка возникает, когда вы ссылаетесь на старый класс com.google.ads.AdSize вместо com.google.android.gms.ads.AdSize. Убедитесь, что вы импортировали com.google.android.gms.ads.AdSize. 27.12.2014
  • Хорошо, исправлено! Большое спасибо. У вас есть ссылка на последний код Admob для PhoneGap? Я просмотрел тонны образцов, и они сбивают с толку и противоречат друг другу. 27.12.2014
  • Ну, я не пробовал код Admob для PhoneGap. Согласно вашему старому руководству, кажется, что единственная разница заключается в API-интерфейсе super.loadUrl PhoneGap. По сути, реализация части AdMob выглядит так же. Вам просто нужно использовать последние библиотеки. 27.12.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..