gpt4 book ai didi

java - Android AdView NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-01 18:44:59 25 4
gpt4 key购买 nike

我是 Android 开发的初学者。我刚刚发布了一个应用程序,但发现了一些问题,因此我想通过创建一个新的 Android 项目来纠正这些问题,该项目的包名称与已发布的应用程序的包名称相同。但是,一旦我完成更新应用程序,该应用程序就不会在手机上运行(调试)。说“不幸的是,这个应用程序已停止。”这次我也尝试合并 adMob。

请帮助我,因为我必须尽快发布此内容。

这是应用程序崩溃后的 Logcat:

08-11 18:14:31.063: E/dalvikvm(15877): Could not find class 'com.google.ads.AdView', referenced from method com.gamerspitch.easybluetooth.BlueActivity.initAdView
08-11 18:14:31.254: E/AndroidRuntime(15877): FATAL EXCEPTION: main
08-11 18:14:31.254: E/AndroidRuntime(15877): java.lang.NoClassDefFoundError: com.google.ads.AdView
08-11 18:14:31.254: E/AndroidRuntime(15877): at com.gamerspitch.easybluetooth.BlueActivity.initAdView(BlueActivity.java:107)
08-11 18:14:31.254: E/AndroidRuntime(15877): at com.gamerspitch.easybluetooth.BlueActivity.onCreate(BlueActivity.java:40)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.Activity.performCreate(Activity.java:5133)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.os.Handler.dispatchMessage(Handler.java:99)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.os.Looper.loop(Looper.java:137)
08-11 18:14:31.254: E/AndroidRuntime(15877): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-11 18:14:31.254: E/AndroidRuntime(15877): at java.lang.reflect.Method.invokeNative(Native Method)
08-11 18:14:31.254: E/AndroidRuntime(15877): at java.lang.reflect.Method.invoke(Method.java:525)
08-11 18:14:31.254: E/AndroidRuntime(15877): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-11 18:14:31.254: E/AndroidRuntime(15877): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-11 18:14:31.254: E/AndroidRuntime(15877): at dalvik.system.NativeStart.main(Native Method)

这是我的 Admob 展示位置的 XML。我刚刚关注了this link添加admob。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/easyb"
tools:context=".BlueActivity" >

<LinearLayout
android:id="@+id/adviewPlaceholder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:orientation="vertical" >
</LinearLayout>

//Other elements

我已将其放入我的 list 文件中 >

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

</activity>

这在我的 Activity onCreate 方法中 >

private AdView ad;


@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_blue);

initAdView();
//Other elements
protected void initAdView() {

ad = new AdView(this, AdSize.SMART_BANNER, "a15204b9eb97566");

LinearLayout ll = (LinearLayout)findViewById(R.id.adviewPlaceholder);

ll.addView(ad);

ad.loadAd(new AdRequest());
}

protected void destroyAdView() {
if(ad != null) ad.destroy();
}

@Override
protected void onDestroy() {
// destroy the ad when the activity is destroyed
destroyAdView();
super.onDestroy();
}

提前致谢

最佳答案

根据错误消息中的这一行:

08-11 02:28:56.973: E/AndroidRuntime(27461): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gamerspitch.easybluetooth/com.gamerspitch.easybluetooth.BlueActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class com.google.ads.AdView

您的 AdView 存在问题,导致应用崩溃。

您能否发布您的 .xml 布局文件以及 Activity。

更新:

为了让这一点更清楚。我从未在 .xml 中定义 AdView。我只是在布局 .xml 文件中创建一个没有子项的布局,然后通过代码将 AdView 添加到其中。它看起来像这样:

      private AdView ad;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.yourlayout);

initAdView();

// other code...
}

protected void initAdView() {

ad = new AdView(this, AdSize.SMART_BANNER, "MY_AD_UNIT_ID");

LinearLayout ll = (LinearLayout) findViewById(R.id.adviewPlaceholder);

ll.addView(ad);

ad.loadAd(new AdRequest());
}

protected void destroyAdView() {
if(ad != null) ad.destroy();
}

@Override
protected void onDestroy() {
// destroy the ad when the activity is destroyed
destroyAdView();
super.onDestroy();
}

布局 yourlayout.xml 文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent >

<!-- lots of other layout stuff here -->


<!-- make the adview be on the bottom of the screen -->
<LinearLayout
android:id="@+id/adviewPlaceholder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>

关于java - Android AdView NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com