我在Pixel XL设备中使用最新的Android O beta版本.
这是我在xml中的webvIEw.
<WebVIEw androID:ID="@+ID/launch_anim" androID:layout_wIDth="match_parent" androID:layout_height="150dp" androID:layout_centerHorizontal="true" />
这是我在Activity类中使用的方式
WebVIEw launch_anim = (WebVIEw)findVIEwByID(R.ID.launch_anim);launch_anim.loadUrl("file:///androID_asset/launch_anim_centered.HTML");
这是我在资产目录中的launch_anim_centered.HTML文件
<HTML><head> <style>body { background-color: #FFFFFF;}</style></head><body><CENTER> <img SRC="launch_anim_1x.gif"></CENTER></body></HTML>
launch_anim_1x.gif文件是一个包含正在旋转的图像的gif文件.
当我启动应用程序时,运行此活动没有问题.然后我做AndroID-For-Work注册.注册后,一旦启动应用程序,此活动就无法呈现,它会抛出这样的异常
07-28 15:39:55.352 16538-16538/? I/WebVIEwFactory: Loading com.Google.androID.webvIEw version 58.0.3029.125 (code 303012500)07-28 15:39:55.353 16538-16538/? D/AndroIDRuntime: Shutting down VM07-28 15:39:55.354 16538-16538/? E/AndroIDRuntime: FATAL EXCEPTION: main Process: com.sample.app, PID: 16538 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample.app/com.sample.app.ui.StartupActivity}: androID.vIEw.InflateException: Binary XML file line #25: Binary XML file line #25: Error inflating class androID.webkit.WebVIEw at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2817) at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at androID.app.ActivityThread.-wrap11(UnkNown Source:0) at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at androID.os.Handler.dispatchMessage(Handler.java:105) at androID.os.Looper.loop(Looper.java:164) at androID.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.androID.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: androID.vIEw.InflateException: Binary XML file line #25: Binary XML file line #25: Error inflating class androID.webkit.WebVIEw Caused by: androID.vIEw.InflateException: Binary XML file line #25: Error inflating class androID.webkit.WebVIEw Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:334) at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:647) at com.androID.internal.policy.PhoneLayoutInflater.onCreateVIEw(PhoneLayoutInflater.java:58) at androID.vIEw.LayoutInflater.onCreateVIEw(LayoutInflater.java:720) at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:788) at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:730) at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:863) at androID.vIEw.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:515) at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:423) at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:374) at com.androID.internal.policy.PhoneWindow.setContentVIEw(PhoneWindow.java:418) at androID.app.Activity.setContentVIEw(Activity.java:2654) at com.sample.app.ui.StartupActivity.onCreate(UnkNown Source:37) at androID.app.Activity.performCreate(Activity.java:6975) at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2770) at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at androID.app.ActivityThread.-wrap11(UnkNown Source:0) at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at androID.os.Handler.dispatchMessage(Handler.java:105) at androID.os.Looper.loop(Looper.java:164) at androID.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.androID.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: java.lang.NullPointerException at androID.content.res.AssetManager.addAssetPathNative(Native Method) at androID.content.res.AssetManager.addAssetPathInternal(AssetManager.java:689) at androID.content.res.AssetManager.addAssetPathAsSharedlibrary(AssetManager.java:684) at androID.webkit.WebVIEwFactory.getProvIDerClass(WebVIEwFactory.java:407) at androID.webkit.WebVIEwFactory.getProvIDer(WebVIEwFactory.java:211) at androID.webkit.WebVIEw.getFactory(WebVIEw.java:2467) at androID.webkit.WebVIEw.ensureProvIDerCreated(WebVIEw.java:2462) at androID.webkit.WebVIEw.setoverScrollMode(WebVIEw.java:2527) at androID.vIEw.VIEw.<init>(VIEw.java:4536) at androID.vIEw.VIEw.<init>(VIEw.java:4668) at androID.vIEw.VIEwGroup.<init>(VIEwGroup.java:597) at androID.Widget.absoluteLayout.<init>(absoluteLayout.java:55)07-28 15:39:55.354 16538-16538/? E/AndroIDRuntime: at androID.webkit.WebVIEw.<init>(WebVIEw.java:636) at androID.webkit.WebVIEw.<init>(WebVIEw.java:581) at androID.webkit.WebVIEw.<init>(WebVIEw.java:564) at androID.webkit.WebVIEw.<init>(WebVIEw.java:551) ... 27 more
此问题仅出现在Pixel和PixelXL设备中. Nexus设备工作正常.任何帮助解决这个问题的人都表示赞赏.谢谢
编辑:新信息.因此,我禁用了webvIEw以查看发生了什么,但在尝试访问cookieManager.getInstance()时应用程序崩溃了.这是堆栈跟踪:
07-31 09:21:51.767 11267-11557/com.airwatch.vmworkspace I/WebVIEwFactory: Loading com.Google.androID.webvIEw version 58.0.3029.125 (code 303012500)07-31 09:21:51.775 13243-13276/? I/ConfigUpdater: Update started --------- beginning of crash07-31 09:21:51.775 11267-11557/com.airwatch.vmworkspace E/AndroIDRuntime: FATAL EXCEPTION: AsyncTask #3 Process: com.airwatch.vmworkspace, PID: 11267 java.lang.RuntimeException: An error occurred while executing doInBackground() at androID.os.AsyncTask.done(AsyncTask.java:353) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) at java.util.concurrent.FutureTask.setException(FutureTask.java:252) at java.util.concurrent.FutureTask.run(FutureTask.java:271) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.NullPointerException at androID.content.res.AssetManager.addAssetPathNative(Native Method) at androID.content.res.AssetManager.addAssetPathInternal(AssetManager.java:689) at androID.content.res.AssetManager.addAssetPathAsSharedlibrary(AssetManager.java:684) at androID.webkit.WebVIEwFactory.getProvIDerClass(WebVIEwFactory.java:407) at androID.webkit.WebVIEwFactory.getProvIDer(WebVIEwFactory.java:211) at androID.webkit.cookieManager.getInstance(cookieManager.java:39) at com.sample.app.network.communication.MycookieManager.<init>(MycookieManager.java:48)
我认为真正的问题是androID.content.res.AssetManager.addAssetPathNative(Native Method)上的NullPointerException.知道如何解决这个问题吗?
解决方法:
这是AndroID O中的一个错误:如果在其中一个配置文件中禁用了Chrome,则两个配置文件的WebVIEw都会中断,直到Play更新为止.
要在配置期间解决此问题并避免更新WebVIEw,您可以使用包含名称com.androID.Chrome的DevicePolicyManager.enableSystemApp()
在工作资料中启用Chrome,然后阻止用户使用DevicePolicyManager.setUninstallBlocked()
禁用它.
如果您希望阻止用户使用Chrome浏览器,则应使用DevicePolicyManager.setPackagesSuspended()
而不是DevicePolicyManager.setApplicationHidden()
.
以上是内存溢出为你收集整理的在AFW注册后,Android O无法使webview膨胀全部内容,希望文章能够帮你解决在AFW注册后,Android O无法使webview膨胀所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)