我的布局中有com.google.ads.AdView。我有我的应用程序的精简版和专业版,如果专业版正在运行,则隐藏布局。
AdView设置为不在create:
上加载添加 <com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
ads:adSize="IAB_MRECT"
ads:adUnitId="a15235585e60557"
ads:loadAdOnCreate="false"
android:gravity="bottom" />
但是,当从我的OnCreate()
调用以下代码行时setContentView(R.layout.myactivity);
logcat中显示以下错误(对于专业版,清单中没有INTERNET权限):
E / Ads(30709):必须在AndroidManifest.xml中启用INTERNET权限。 E / Ads(30709):您必须在AndroidManifest.xml中拥有INTERNET和ACCESS_NETWORK_STATE权限。现在,这不是一个致命的错误,因为应用程序可以继续加载,但它会导致加载进程挂起,因为正在发生的任何Internet访问,正在UI线程上发生 - 导致应用程序交出加载几秒钟。事实上,如果我给应用程序INTERNET权限,我在logcat中会收到以下消息:
I / Choreographer(30487):跳过32帧!应用程序可能在其主线程上做了太多工作。现在,当然,有各种方法可以解决这个问题。我可以考虑做以下事情:
但这些只是解决方法。我真的更愿意知道为什么布局试图访问互联网,以及如何防止它这样做。