Android API 23 Emulator下非常简单的WebView崩溃

Android API 23 Emulator下非常简单的WebView崩溃,android,android-emulator,android-webview,android-6.0-marshmallow,Android,Android Emulator,Android Webview,Android 6.0 Marshmallow,我刚刚在我的机器上创建了一个API 23模拟器: HAXM:v1.4,配置1GB的RAM AVD基地:Nexus 4 内存:768MB,第二次尝试时为896MB 堆:64MB GPU加速:否 我用自己的几个应用程序成功地尝试了它。但每次我尝试使用WebView作为UI的应用程序时,应用程序都会以这种方式崩溃: 此日志的前三行是与我的应用程序相关的唯一行(以蓝色突出显示)。在LogCat的“应用程序”列中,所有其他行都没有提到我的应用程序包的名称,但是在消息的中间(蓝色圈)中有一个。 我可以

我刚刚在我的机器上创建了一个API 23模拟器:

  • HAXM:v1.4,配置1GB的RAM
  • AVD基地:Nexus 4
  • 内存:768MB,第二次尝试时为896MB
  • 堆:64MB
  • GPU加速:否
我用自己的几个应用程序成功地尝试了它。但每次我尝试使用
WebView
作为UI的应用程序时,应用程序都会以这种方式崩溃:

此日志的前三行是与我的应用程序相关的唯一行(以蓝色突出显示)。在LogCat的“应用程序”列中,所有其他行都没有提到我的应用程序包的名称,但是在消息的中间(蓝色圈)中有一个。 我可以将HTML代码加载到
WebView
中。崩溃发生在
setContentView(网络视图)
时间:

public class MyActivity extends Activity { 
    private WebView mWebview = null; 

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

        mWebview = new WebView(this);
        mWebview.loadDataWithBaseURL("file:///android_asset/", HTML_CODE, "text/html", "UTF-8", null);

        setContentView(mWebview); // THIS IS WHERE THE CRASH OCCURS
    }

    [...]
使用或不使用
runOnUiThread()
来运行
mWebview.loadDataWithBaseURL()
会产生完全相同的结果,因为
onCreate()
实际上在UI线程上

我使用的html代码不会改变任何东西。在上述情况下,
HTML\u code
变量包含以下内容:

<html>
    <head></head>
    <body>
        <h1>Hello</h1>
        <p>Hello world!</p>
    </body>
</html>

有什么想法吗?(我正在进一步调查,如果发现任何相关信息,我将更新此帖子)

此行为不是由AVD的任何错误设置或任何缺少的先决条件(硬件等)造成的

如评论中所述:

#8…@chromium.org

不幸的是,OpenGL ES 2.0支持对于设备来说是强制性的 至少从安卓4.0开始,我们就没有明确支持 GLES 1.x,它只是在意外情况下工作的:/

模拟器(没有主机GPU)似乎有点问题 仿真)不符合Android设备的最低要求

我们也许能够在一个重要的时间为模拟器解决这个问题 性能成本;我们正在和模拟器团队讨论 在这里最好的做法是


现在这个问题已经解决了(SDK tools 25.1 RC1/platform 23 rev 3),即使上面链接的票证上没有出现这个问题

除非您编写了自己的NDK代码,否则您将在
WebView
中遇到错误。对此,您无能为力,只能对您的Web内容进行试验,看看您是否能够隔离出触发错误的操作。@Commonware感谢您的Commonware。我会进一步调查并在有相关信息时更新这篇文章。我相信这与@cryptojuice有关。是的,当然。当SDK发行版更新时,我满怀希望,因为问题仍然存在
DataReductionProxySettingListener:由于异常而没有DRP密钥:java.lang.ClassNotFoundException:com.android.webview.chromium.DRP
(与之前相同)@cryptojuice由于我们唯一能做的事情就是等待这一问题得到解决,我回答了我自己的问题,如您所见。但是,实际的信息来自您,所以请随意用它写一个实际的答案。我接受它。我在VMware内部运行我的模拟器,所以我关闭了GPU仿真(如果我打开它,AVD将不会启动)。我有SDK平台23版本3,但仍然出现“check failed:kGLImplementationNon!=GetGLImplementation()(0 vs.0)”错误,浏览器无法启动。如果我有SDK平台23 rev 3,我还需要做什么才能让它正常工作?
10-28 20:26:05.102 2168-2168/com.example.myapp W/System: ClassLoader referenced unknown path: /data/app/com.example.myapp-1/lib/x86
10-28 20:26:08.583 2168-2168/com.example.myapp E/DataReductionProxySettingListener: No DRP key due to exception:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp
10-28 20:26:09.393 2168-2213/com.example.myapp W/chromium: [WARNING:data_reduction_proxy_config.cc(423)] SPDY proxy OFF at startup
10-28 20:26:12.521 2168-2286/com.example.myapp A/chromium: [FATAL:gl_surface_android.cc(58)] Check failed: kGLImplementationNone != GetGLImplementation() (0 vs. 0)
10-28 20:26:12.521 2168-2286/com.example.myapp A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 2286 (GpuThread)