【问题标题】:how to add google adsense?如何添加谷歌adsense?
【发布时间】:2021-06-08 23:57:36
【问题描述】:

我正在使用这段代码,它看起来很完美,没有任何错误 bt 不知道为什么我的应用程序每次运行我的应用程序都会崩溃..

<com.google.ads.AdView
    android:id="@+id/ad"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adUnitId= "idthatigotthroughadmob"
    ads:loadAdOnCreate="true"
    ads:adSize="BANNER"
/>

在 android manifest.xml 中

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

<application><activity
 android:name="com.google.ads.AdActivity"
 android:configChanges="keyboard|keyboardHidden|orientation"
 ></activity> </application>

logcat 显示

04-12 21:30:09.655: E/dalvikvm(272): Could not find class 'com.google.ads.AdView', 
referenced from method com.project.hisaabkikitaab.MainActivity.onCreate
04-12 21:30:09.655: W/dalvikvm(272): VFY: unable to resolve check-cast 471 (Lcom/google
/ads/AdView;) in Lcom/project/hisaabkikitaab/MainActivity;
04-12 21:30:09.655: D/dalvikvm(272): VFY: replacing opcode 0x1f at 0x000e
04-12 21:30:09.655: D/dalvikvm(272): VFY: dead code 0x0010-02b9 in Lcom/project  
/hisaabkikitaab/MainActivity;.onCreate (Landroid/os/Bundle;)V
04-12 21:30:09.815: D/AndroidRuntime(272): Shutting down VM
04-12 21:30:09.815: W/dalvikvm(272): threadid=1: thread exiting with uncaught     
exception  (group=0x4001d800)
04-12 21:30:09.845: E/AndroidRuntime(272): FATAL EXCEPTION: main
04-12 21:30:09.845: E/AndroidRuntime(272): java.lang.NoClassDefFoundError:    
com.google.ads.AdView
04-12 21:30:09.845: E/AndroidRuntime(272):  at    
com.project.hisaabkikitaab.MainActivity.onCreate(MainActivity.java:42)
04-12 21:30:09.845: E/AndroidRuntime(272):  at   
.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

【问题讨论】:

    标签: android adsense


    【解决方案1】:

    您也需要将ads 命名空间添加到布局根节点

    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    

    您可能从中获取示例的教程已经有了它:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
                  android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent">
      <com.google.ads.AdView android:id="@+id/adView"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             ads:adUnitId="MY_AD_UNIT_ID"
                             ads:adSize="BANNER"
                             ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
                             ads:loadAdOnCreate="true"/>
    </LinearLayout>
    

    来源:https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals,Android 选项卡

    另一种可能的解决方案:

    您的项目中有libs 文件夹吗?如果是这样,是否有 admob 库?如果您对其中任何一个说不,请确保创建了一个 libs 文件夹(在 ressrc 的同一级别,并将您的 admob 库复制到那里。清理项目并重建。

    【讨论】:

    • 我已经添加了 :( schemas.android.com/apk/res/android" xmlns:ads="schemas.android.com/apk/lib/com.google.ads" android:layout_width="match_parent" android:layout_height="match_parent" android :background="@drawable/backmage" android:orientation="vertical" >
    • 我已经通过您正在引用的开发人员页面编写了我的代码 bt 不知道发生了什么我的应用程序每次启动时都会崩溃.. 还有什么我遗漏的吗??
    • @scripter 试试这个:你的项目中有libs 文件夹吗?如果是这样,是否有 admob 库?如果您对其中任何一个说不,请确保创建了一个 libs 文件夹(在 ressrc 的同一级别,并将您的 admob 库复制到那里。清理项目并重建。
    • 是的,我有 libs 文件夹而不是那个 admob 库,只是另外一件事如何粘贴那个 admob 库???
    • 谢谢,我终于在库中添加了 admob,它工作得很好:)
    【解决方案2】:

    参考:

    https://developers.google.com/admob/android/banner

    build.gradle(应用程序)

    implementation 'com.google.android.gms:play-services-ads:20.1.0'
    

    AndroidManifest.xml

    <application
        .....
       <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
    

    activity_main.xml

    <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
    </com.google.android.gms.ads.AdView>
    

    在主活动中

    private AdView mAdView;
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
    
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    
        mAdView.setAdListener(new AdListener() {
    
        @Override
        public void onAdLoaded() {
        
        }
    
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
       
        }
    
        @Override
        public void onAdOpened() {
        
        }
    
        @Override
        public void onAdClicked() {
    
        }
    
        @Override
        public void onAdClosed() {
        
        }
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多