2015-06-20 2 views
0

Я видел много похожих тем на этом форуме, но ни одна из них не решила мою проблему. В моем коде у меня есть что-то вроде этого:AdView Admob Error

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

...

AdView adView = (AdView)this.findViewById(R.id.adView); 
AdRequest adRequest = new AdRequest.Builder() 
.addTestDevice("TEST_DEVICE_ID") 
.build(); 
adView.loadAd(adRequest); 

И он показывает мне 2 ошибки (я обозначил красные отметины как жирный текст):

-in первая строка: «AdView adView = (AdView) this.findViewById (R.id. adView); - adView не может быть разрешен или не поле

-И в последней строке: "adView.loadAd (adRequest);" - Тип android.view.ViewGroup не может быть разрешен. Это косвенно ссылается на требуемые файлы .class

Я понятия не имею, что вызывает его. У меня также была проблема с отсутствием папки «layout», но я сгенерировал ее с помощью eclipse new> other> файла макета для Android. Должен ли я как-то связать его с помощью манифеста?

P.S. Это проекту libGDX

EDIT: Вот мой макет/файл activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

<com.google.android.gms.ads.AdView 
    android:id="@+id/adView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/banner_ad_unit_id"> 

</com.google.android.gms.ads.AdView> 

+0

Опубликуйте файл макета, где вы размещаете в adview – Psypher

+0

вы импортировали библиотеку услуг Google Play? –

+0

@ Ravi Да, сервис Google Play импортирован в мой проект. Ranjith, я отправлю его там^ – urban07

ответ

1

ваша проблема с этой линией

import com.google.android.gms.R; 

удалить это и импортировать пакет .R файл

import <package name>.R 
+0

Хм, как именно я должен его импортировать? , когда я пробую: «import com.name.game.R», он не работает. My R.java находится в «Project name \ android \ gen \ com \ google \ android \ gms" – urban07

+0

, если ваш packagename.R не работает, чем есть некоторые ошибки в вашем макете или манифесте, попробуйте очистить проект и проверить консоль для error detail –

+0

Wow, nevermind, я импортировал проект андроида в ядро, и теперь он работает, но сейчас у меня проблема: «AdView adView = (AdView) this.findViewById (R.id.adView);» - Метод findViewById (int) не определен для типа GameScreen – urban07

0

У меня такая же проблема в cocos2dx, у меня нет файла макета, и я хочу dislplay AdMob рекламных баннеров, пожалуйста, попробуйте это решение без создания макета XML файла:

внутри onCreate функции:

 adView = new AdView(this); 
     adView.setAdSize(AdSize.BANNER); 
     adView.setAdUnitId("YOUR ID"); 

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

     adView.loadAd(adRequest); 

     adView.setBackgroundColor(Color.BLACK); 
     adView.setBackgroundColor(0); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

     int width = getDisplaySize(getWindowManager().getDefaultDisplay()).x; 

     LinearLayout.LayoutParams adParams = new LinearLayout.LayoutParams(
       width, LinearLayout.LayoutParams.WRAP_CONTENT); 
     addContentView(adView, adParams); 

и getDisplaySize метод:

// Helper get display screen to avoid deprecated function use 
     private Point getDisplaySize(Display d) 
      { 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
       { 
        return getDisplaySizeGE11(d); 
       } 
       return getDisplaySizeLT11(d); 
      } 

      @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) 
      private Point getDisplaySizeGE11(Display d) 
      { 
       Point p = new Point(0, 0); 
       d.getSize(p); 
       return p; 
      } 
      private Point getDisplaySizeLT11(Display d) 
      { 
       try 
       { 
        Method getWidth = Display.class.getMethod("getWidth", new Class[] {}); 
        Method getHeight = Display.class.getMethod("getHeight", new Class[] {}); 
        return new Point(((Integer) getWidth.invoke(d, (Object[]) null)).intValue(), ((Integer) getHeight.invoke(d, (Object[]) null)).intValue()); 
       } 
       catch (NoSuchMethodException e2) // None of these exceptions should ever occur. 
       { 
        return new Point(-1, -1); 
       } 
       catch (IllegalArgumentException e2) 
       { 
        return new Point(-2, -2); 
       } 
       catch (IllegalAccessException e2) 
       { 
        return new Point(-3, -3); 
       } 
       catch (InvocationTargetException e2) 
       { 
        return new Point(-4, -4); 
       } 
      } 
+0

Извините, он просто дал мне больше ошибок:/ – urban07

+0

попробуйте импортировать классы и, пожалуйста, определите adView как глобальную переменную вроде этого \t AdView adView; –

+0

Ну, есть несколько ошибок. Дайте мне минуту, я попробую вставить их все здесь – urban07

Смежные вопросы