2012-10-07 19 views
0

我剛剛完成我的第一個應用程序,並希望將廣告合併到應用程序的底部。廣告橫幅廣告代碼只能從Google網站https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals獲得,並添加到主要活動廣告瓶中。一切似乎都很好,但當我運行程序時,它崩潰,logcat和jar編碼如下:android:廣告不能被納入程序

1)這些問題怎麼解決? (沒有廣告的程序可以無任何錯誤地運行)

2)如何爲廣告設置:testDevices =「TEST_EMULATOR,TEST_DEVICE_ID」???

3)我的xml是一個TableLayout,這很重要嗎? (從logcat它似乎不能適當膨脹的廣告?)

非常感謝提前!

罐部分:

import com.google.ads.*; 
import com.google.ads.AdRequest; 
import com.google.ads.AdSize; 
import com.google.ads.AdView; 

public class MainActivity extends Activity { 
    AdView adView;  
    public static final String MY_PUBLISHER_ID = "a123123123123123c"; //this one is correct 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //request TEST ads to avoid being disabled for clicking your own ads   
     AdRequest adRequest = new AdRequest();   
     //test mode on EMULATOR   
     adRequest.addTestDevice(AdRequest.TEST_EMULATOR);     
     //test mode on DEVICE (this example code must be replaced with your device unique ID)   
     adRequest.addTestDevice("4G74FC73D62D42B62A7F7DA61EF5F776"); //how to set this? this one is copied from the tutorial only   
     //create a Banner Ad   
     adView = new AdView(this, AdSize.BANNER, MY_PUBLISHER_ID);   
     //call the main layout from xml   
     TableLayout mainLayout = (TableLayout)findViewById(R.id.tableLayout);   
     //add the Banner Ad to our main layout   
     mainLayout.addView(adView);   
     // Initiate a request to load an ad in TEST mode. 
     // The test mode will work only on emulators and your specific test device, 
     // the users will get real ads.   
     adView.loadAd(adRequest); 
    } 

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

的logcat如下:

10-10 01:17:34.230: D/dalvikvm(13612): Late-enabling CheckJNI 
10-10 01:17:34.650: E/dalvikvm(13612): Could not find class 'com.google.ads.AdRequest', referenced from method com.pearappx.acctcalc.MainActivity.onCreate 
10-10 01:17:34.650: W/dalvikvm(13612): VFY: unable to resolve new-instance 425 (Lcom/google/ads/AdRequest;) in Lcom/pearappx/acctcalc/MainActivity; 
10-10 01:17:34.650: D/dalvikvm(13612): VFY: replacing opcode 0x22 at 0x0009 
10-10 01:17:34.650: I/dalvikvm(13612): Could not find method com.google.ads.AdView.destroy, referenced from method com.pearappx.acctcalc.MainActivity.onDestroy 
10-10 01:17:34.650: W/dalvikvm(13612): VFY: unable to resolve virtual method 3042: Lcom/google/ads/AdView;.destroy()V 
10-10 01:17:34.650: D/dalvikvm(13612): VFY: replacing opcode 0x6e at 0x0006 
10-10 01:17:34.650: D/dalvikvm(13612): DexOpt: unable to opt direct call 0x0bdf at 0x0b in Lcom/pearappx/acctcalc/MainActivity;.onCreate 
10-10 01:17:34.650: I/dalvikvm(13612): DexOpt: unable to optimize static field ref 0x02e7 at 0x0e in Lcom/pearappx/acctcalc/MainActivity;.onCreate 
10-10 01:17:34.700: I/dalvikvm(13612): DexOpt: unable to optimize static field ref 0x02e8 at 0x1a in Lcom/pearappx/acctcalc/MainActivity;.onCreate 
10-10 01:17:34.700: D/dalvikvm(13612): DexOpt: unable to opt direct call 0x0be1 at 0x1e in Lcom/pearappx/acctcalc/MainActivity;.onCreate 
10-10 01:17:35.085: D/AndroidRuntime(13612): Shutting down VM 
10-10 01:17:35.085: W/dalvikvm(13612): threadid=1: thread exiting with uncaught exception (group=0x40c781f8) 
10-10 01:17:35.105: E/AndroidRuntime(13612): FATAL EXCEPTION: main 
10-10 01:17:35.105: E/AndroidRuntime(13612): java.lang.NoClassDefFoundError: com.google.ads.AdRequest 
10-10 01:17:35.105: E/AndroidRuntime(13612): at com.pearappx.acctcalc.MainActivity.onCreate(MainActivity.java:94) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.Activity.performCreate(Activity.java:4470) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.ActivityThread.access$600(ActivityThread.java:127) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.os.Looper.loop(Looper.java:137) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at android.app.ActivityThread.main(ActivityThread.java:4511) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at java.lang.reflect.Method.invokeNative(Native Method) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at java.lang.reflect.Method.invoke(Method.java:511) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747) 
10-10 01:17:35.105: E/AndroidRuntime(13612): at dalvik.system.NativeStart.main(Native Method) 
+0

這些錯誤是發生在編譯時還是運行時? – Eric

+0

您有2個廣告,一個來自xml,一個通過add方法進行活動,您確定您需要兩個廣告嗎? – logcat

+0

重新tabbykitten:謝謝指出,我已經刪除了在XML中的一個。然後我運行該程序,它崩潰,logcat上面貼出來,似乎它不能充分膨脹廣告? – pearmak

回答

0

我想你忘了添加AdMob的罐子類路徑

+0

謝謝指出。我現在已經將admob jar添加到類路徑中,並且編譯錯誤消失了!謝謝! – pearmak

+0

是的,雖然編譯錯誤消失了,但不能正確執行。 logcat如上發佈。你知道如何解決它的任何想法嗎?非常感謝! – pearmak

+0

你如何構建應用程序?如果日食你需要去右鍵點擊項目>屬性>構建路徑>命令和導出>檢查admob庫在設備上導出 – logcat

0

嘿遵循這一tutorial

你已經錯過了將jar添加到您的libs文件夾中

+0

謝謝!我已閱讀完本教程。我可以問如何找到這樣的設備ID?雖然它說的教程從日誌信息找到它(它是指LOGCAT?)我在Logcat中找不到任何... – pearmak

+0

不需要設備ID。它沒有它就會工作。 – moDev

相關問題