AdMob广告视图在Android设备旋转时导致崩溃

3
我从xml添加了admob广告视图,像这样;
<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

1- 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.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- 无法启动活动ComponentInfo{com.x/com.x.ui.HomeActivity}:二进制XML文件第13行:错误膨胀类 java.lang.RuntimeException: 无法启动活动ComponentInfo{com.X/com.X.ui.HomeActivity}:二进制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.

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

1个回答

0

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

第二点和第三点很可能是由于未正确链接AdMob库引起的。请参见错误膨胀类com.google.ads.AdView


嗨,@Eric,我正在使用最新版本(6.2.0)。我正在使用一台搭载Android 2.3.7的真实设备。在更改方向时,我查看内存使用情况,发现它会增加直到崩溃。Adview中必须存在内存泄漏。我还使用官方的Soundhound应用程序进行了相同的测试,结果也崩溃了。 - syloc

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