2013-05-18 6 views
2

У меня есть простая деятельность, чтобы просто протестировать показ объявлений:AdMob объявление отображающего на эмуляторе, но не реальное устройство

public class AdTestActivity extends Activity { 

private AdView adView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this)); 
    setContentView(R.layout.ad_test); 

    adView = new AdView(this, AdSize.BANNER, "[my ad id]"); 
    LinearLayout layout = (LinearLayout)findViewById(R.id.layout_at_1); 
    layout.addView(adView); 
    adView.loadAd(new AdRequest()); 
} 

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

Объявлений работает отлично на эмуляторах, и на моем телефоне через ADB. Однако, если я создаю .apk проекта и устанавливаю его на тот же телефон (после удаления его из ADB), он закроется, как только я открою AdTestActivity. Деятельность объявляется в манифесте:

<activity 
     android:name=".AdTestActivity" 
     android:label="@string/title_activity_main" 
     android:screenOrientation="portrait" > 
    </activity> 

Я объявил разрешения:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Любая идея, что происходит?

Изменить - да, я заблокировал блокировку рекламы на телефоне.

ответ

1

Вы получаете ClassNotFoundException или ActivityNotFoundException после установки APK?

Если это так, пожалуйста, экспортировать AdMod банку файл в Строить Path-> Заказ и экспорт

0

Сформировать идентификатор по этому следующий код:

String android_id = Settings.Secure.getString(
      this.getContentResolver(), Settings.Secure.ANDROID_ID); 
String deviceId = md5(android_id).toUpperCase(); 


public static final String md5(final String s) { 
    try { 
     // Create MD5 Hash 
     MessageDigest digest = java.security.MessageDigest 
       .getInstance("MD5"); 
     digest.update(s.getBytes()); 
     byte messageDigest[] = digest.digest(); 

     // Create Hex String 
     StringBuffer hexString = new StringBuffer(); 
     for (int i = 0; i < messageDigest.length; i++) { 
      String h = Integer.toHexString(0xFF & messageDigest[i]); 
      while (h.length() < 2) 
       h = "0" + h; 
      hexString.append(h); 
     } 
     return hexString.toString(); 

    } catch (NoSuchAlgorithmException e) { 
     e.printStackTrace(); 
    } 
    return ""; 
} 

и использовать это в:

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

Также, если это не удается, Google сообщает вам этот идентификатор устройства в логарифме. Смотрите также!

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