2013-05-18 63 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(); 
    } 
} 

廣告正在對模擬器的罰款,並在我的手機在亞洲開發銀行。但是,如果我創建項目的.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

安裝APK後,您是否得到ClassNotFoundException或ActivityNotFoundException?

如果是這樣,請匯出AdMod jar文件在構建路徑 - >訂單和出口

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(); 

此外,如果此失敗,谷歌給你在logcat的設備ID。請看看!

相關問題