【问题标题】:admob adview causes crash on android while rotatingadmob adview 在旋转时导致 android 崩溃
【发布时间】:2012-10-17 23:13:07
【问题描述】:

我像这样从xml添加了admob adview;

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

首先;似乎没有问题。但是当我快速改变屏幕方向几次时;应用程序崩溃了。我有这些错误;

1- bitmap size exceeds VM budget

java.lang.OutOfMemoryError:位图大小超出 VM 预算 android.graphics.Bitmap.nativeCreate(Native Method) 在 android.graphics.Bitmap.createBitmap(Bitmap.java:477) 在 android.graphics.Bitmap.createBitmap(Bitmap.java:444) 在 android.graphics.Bitmap.createScaledBitmap(Bitmap.java:349) 在 android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:498) 在 android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:473) 在 android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336) 在 android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697) 在 android.content.res.Resources.loadDrawable(Resources.java:1785) 在 android.content.res.TypedArray.getDrawable(TypedArray.java:601) 在 android.widget.ImageView.(ImageView.java:118) 在 android.widget.ImageButton.(ImageButton.java:85) 在 android.widget.ImageButton.(ImageButton.java:81) 在 java.lang.reflect.Constructor.constructNative(Native Method) 在 java.lang.reflect...

2- 二进制 XML 文件第 16 行:膨胀类时出错

android.view.InflateException:二进制 XML 文件第 16 行:错误 膨胀类 android.view.LayoutInflater.createView(LayoutInflater.java:518) 在 com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:408) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:320) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:276) 在 com.X.ui.FooterFragment.onCreateView(FooterFragment.java:21) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:846) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1061) 在 android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:291) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:...

3- 无法开始活动 组件信息{com.x/com.x.ui.HomeActivity}: android.view.InflateException:二进制 XML 文件第 13 行:错误 膨胀类

java.lang.RuntimeException:无法启动活动 组件信息{com.X/com.X.ui.HomeActivity}: android.view.InflateException:二进制 XML 文件第 13 行:错误 膨胀类 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 在 android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2953) 在 android.app.ActivityThread.access$1600(ActivityThread.java:123) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:130) 在 android.app.ActivityThread.main(ActivityThread.java:3835) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:507) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) 在 com.android.internal.os.ZygoteInit.main(Zygo.

我尝试按照here 的描述以编程方式添加它,但没有任何改变...有什么想法吗?

【问题讨论】:

    标签: android android-layout admob


    【解决方案1】:

    对于 1,您使用的是什么 SDK 版本,以及您在什么设备上运行它?这可能是特定于模拟器的问题。

    2 和 3 可能是由于未正确链接 AdMob 库。见Error inflating class com.google.ads.AdView

    【讨论】:

    • 嗨@Eric,我使用的是最新版本(6.2.0)。我正在使用带有 android 2.3.7 的真实设备。在更改方向时,我查看了内存使用情况,我发现它会增加直到崩溃。 adview 中一定有内存泄漏。我也用官方的 Soundhound 应用测试了同样的东西,它也崩溃了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多