以下类无法实例化:com.google.ads.AdView。

3
我发现关于这个问题的几个问题,但是我找不到解决方法。
我将以下代码添加到AndroidManifest.xml文件中:
  <activity android:name="com.google.ads.AdActivity"       android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

我向库文件添加了GoogleAdMobAdsSdk-6.4.1.jar。

同时,我在xml页面的顶部添加了以下代码:

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

但是它没有起作用,它给我这个错误信息:
   The following classes could not be instantiated:
- com.google.ads.AdView

当我在手机上测试应用时,它无法运行。


首先,您不应再使用此AdMob sdk。现在它已经包含在Google Play服务包中:https://developer.android.com/google/play-services/index.html。其次,您如何将库包含到您的项目中? - Opiatefuchs
@Opiatefuchs 右键单击应用程序>构建路径>库>添加额外的JAR包。 - abdullatif morsi
@Opiatefuchs 我使用SDK管理器下载了Google Play服务包,但仍然无法正常工作。 - abdullatif morsi
现在使用Play服务时出现了什么精确的错误信息? - Opiatefuchs
我们需要两件事情,使用现在的play服务后,请发布您的清单文件和使用广告视图的布局... - Opiatefuchs
2个回答

2
我假设您已经从sdk管理器中安装了Google Play服务。现在请将以下代码添加到清单文件中。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" ></uses-permission>

 <meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
 <activity android:name="com.google.android.gms.ads.AdActivity"                android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

在你的activity_name.xml文件中。
<com.google.android.gms.ads.AdView
        android:id="@+id/questions_adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/ad_unit_id"
        android:background="@android:color/background_dark"
        android:minHeight="38px"
        android:minWidth="250px" >
    </com.google.android.gms.ads.AdView> 

在各自的activity_name.java文件中。
import com.google.android.gms.ads.AdView

AdView mAdView = (AdView)findViewById(R.id.questions_adView);   
    AdRequest adRequest = new AdRequest.Builder()
    .build();
    if(mAdView!=null)
    {
    mAdView.loadAd(adRequest);
    }

安装谷歌Play服务后,请按照以下步骤操作:

  1. 从adt-bundle-linux-x86_64-20140702/sdk/extras/google/google_play_services/libproject/google-play-services_lib导入到工作区。

  2. 右键单击项目--属性--Android--添加--从弹出的对话框中选择Google Play服务。

  3. 清除项目。

希望这能帮助解决错误。


我遇到了这个错误:在这段代码new AdRequest.Builder()下,AdRequest.Builder无法解析为一种类型。 - abdullatif morsi
你是否像这样导入了?import com.google.android.gms.ads.AdRequest; - Programmer
我认为你可以在这里找到Google Play服务版本/adt-bundle-linux-x86_64-20140702/sdk/extras/google/m2repository/com/google/android/gms/play-services。如果在集成Admob时有任何进一步的问题,请告诉我。 - Programmer
错误已经消失,但是广告没有显示出来,这是我的问题:https://dev59.com/L4Pba4cB1Zd3GeqPyeOk?noredirect=1#comment40975394_26140658 - abdullatif morsi
嗨,请查看我对你的问题的回答:https://dev59.com/L4Pba4cB1Zd3GeqPyeOk#26142239 - Programmer

0

尝试更改

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

to:

xmlns:ads="http://schemas.android.com/apk/res-auto"

它曾经解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接