簡體   English   中英

java.lang.NoClassDefFoundError:com.google.android.gms.ads.AdView

[英]java.lang.NoClassDefFoundError: com.google.android.gms.ads.AdView

我正在編寫代碼以在我的Android應用程序中顯示Admob Banner。 為了達到這個目的,我做了以下幾點調整:

  • 配置了以下Google Play服務庫: https//developers.google.com/mobile-ads-sdk/docs/
  • 添加

      <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 

       <meta-data
       android:name="com.google.android.gms.version"
        android:value="4323000" /> 

我的清單文件中的代碼,還添加了以下權限:

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

當我嘗試運行應用程序時,它會拋出以下異常:

     05-07 14:51:17.617: E/AndroidRuntime(7877): FATAL EXCEPTION: main
     05-07 14:51:17.617: E/AndroidRuntime(7877): java.lang.NoClassDefFoundError:       com.google.android.gms.ads.AdView
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at com.atc.hums.HumsActivity.onCreate(HumsActivity.java:458)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.Activity.performCreate(Activity.java:5165)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1103)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2419)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.ActivityThread.access$600(ActivityThread.java:162)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.os.Handler.dispatchMessage(Handler.java:99)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.os.Looper.loop(Looper.java:158)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at android.app.ActivityThread.main(ActivityThread.java:5751)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at java.lang.reflect.Method.invokeNative(Native Method)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at java.lang.reflect.Method.invoke(Method.java:511)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
     05-07 14:51:17.617: E/AndroidRuntime(7877):    at dalvik.system.NativeStart.main(Native Method)

為您的項目添加Google Play服務支持

根據Google Play服務設置指南 ,不僅僅是“添加廣告”。 由於GPS捆綁了資源,您必須將其作為新的單獨項目導入,並從您自己的現有項目中引用它。

請按照設置指南進行操作。 我剛剛確認我可以從我自己的GPS項目中成功引用AdView

確保您的設備支持Google Play服務

GPS是一項外部服務 - 它是由Play商店應用管理的APK,您需要確保用戶擁有最新的GPS APK和/或符合您想要的功能。 以下是指南: 確保設備擁有Google Play服務APK

如果設備沒有安裝GPS(不是Google設備,特殊ROM,AOSP ROM,舊Android等等),則無法使用AdView。

我認為你應該遵循這些步驟

第一步:你應該登錄到admob帳戶並在那里添加一個沒有url的應用程序。點擊管理app take,adunitId從那里的xml布局請放置以下代碼。

 <com.google.ads.AdView android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="youradunitid"
                     ads:adSize="BANNER"
                     ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
                     ads:loadAdOnCreate="true"/>

第二步:在主要活動中,請不要再添加adview,因為您已經在xml中添加了adview,請不要忘記將loadAdOnCreate = true

第三步:

您已經為清單添加了必要條件。

第四步:當您在模擬器上運行時,它會提供測試廣告

第五步:現在您已准備好在設備上啟動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM