Mapbox Android SDK崩溃-"java.lang.Error:顶点着色器填充无法编译" [英] Mapbox Android SDK crash - "java.lang.Error: Vertex shader fill failed to compile"

查看:179
本文介绍了Mapbox Android SDK崩溃-"java.lang.Error:顶点着色器填充无法编译"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将Android Studio版本升级到2.1.3之后,每次启动应用程序时都会崩溃.

After upgrading my Android Studio version to 2.1.3, my application crashes every time I launch it.

更准确地说,当尝试加载我的Mapbox视图时,它崩溃了(在此之前可以正常工作).

More precisely, it crashes when trying to load my Mapbox View (that was perfectly working before that).

我做了一些研究,这似乎是一个已知问题,但是我找不到任何解决方法来解决这个问题...

I did some research, and it seems to be a known issue, but I couldn't find any workaround to pass through it...

我认为这可能仅是仿真器的问题,但是目前我无法尝试使用很多物理设备,因此我不确定.但是无论如何,我确实需要使用模拟器来调试我的应用程序.

I think it MAY be a problem with the Emulator only, but for now I couldn't try on a lot of physical devices, so I'm not sure about that. But anyway, I really need to use the emulator to debug my app.

如果某人有任何相关信息,将非常有帮助.非常感谢!

If someone has any information about that it will be really helpful. Thank a lot!

这是我收到的错误日志.第一个:

Here is the error logs I receive. The first one:

09-16 13:27:59.063 2938-2938/flow.bricks D/mbgl: {flow.bricks}[Android]: NativeMapView::notifyMapChange()
09-16 13:27:59.065 2938-2938/flow.bricks E/mbgl: {flow.bricks}[Shader]: Shader failed to compile: ERROR: Valid GLSL but not GLSL ES
09-16 13:27:59.065 2938-2938/flow.bricks E/mbgl: {flow.bricks}[Shader]: Vertex shader fill failed to compile: precision highp float;
                                             #ifdef GL_ES
                                             precision highp float;
                                             #else
                                             #define lowp
                                             #define mediump
                                             #define highp
                                             #endif

                                             attribute vec2 a_pos;

                                             uniform mat4 u_matrix;

                                             uniform lowp vec4 u_color;
                                             uniform lowp float u_opacity;

                                             void main() {
                                                 lowp vec4 color = u_color;
                                                 lowp float opacity = u_opacity;

                                                 gl_Position = u_matrix * vec4(a_pos, 0, 1);
                                             }
09-16 13:27:59.066 2938-2938/flow.bricks D/AndroidRuntime: Shutting down VM

第二个:

                                                           --------- beginning of crash
09-16 13:27:59.068 2938-2938/flow.bricks E/AndroidRuntime: FATAL EXCEPTION: main
                                                       Process: flow.bricks, PID: 2938
                                                       java.lang.Error: Vertex shader fill failed to compile
                                                           at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
                                                           at com.mapbox.mapboxsdk.maps.NativeMapView.render(NativeMapView.java:139)
                                                           at com.mapbox.mapboxsdk.maps.MapView.onDraw(MapView.java:1377)
                                                           at android.view.View.draw(View.java:16178)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15174)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.draw(View.java:16181)
                                                           at android.support.v4.view.ViewPager.draw(ViewPager.java:2415)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15174)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.draw(View.java:16181)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15174)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15169)
                                                           at android.view.View.draw(View.java:15948)
                                                           at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
                                                           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
                                                           at android.view.View.draw(View.java:16181)
                                                           at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2690)
                                                           at android.view.View.updateDisplayListIfDirty(View.java:15174)
                                                           at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
                                                           at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
                                                           at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
                                                           at android.view.ViewRootImpl.draw(ViewRootImpl.java:2615)
                                                           at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434)
                                                           at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067)
                                                           at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
                                                           at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
                                                           at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
                                                           at android.view.Choreographer.doCallbacks(Choreographer.java:670)
                                                           at android.view.Choreographer.doFrame(Choreographer.java:606)
                                                           at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
                                                           at android.os.Handler.handleCallback(Handler.java:739)
                                                           at android.os.Handler.dispatchMessage(Handler.java:95)
                                                           at android.os.Looper.loop(Looper.java:148)
                                                           at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                        a

推荐答案

基于我在我能够将Android SDK Tools降级为25.1.7,并且能够启动并成功加载x86模拟器.

I was able to downgrade my Android SDK Tools to 25.1.7, and I was able to launch and successfully load the x86 emulator.

我针对 https://github.com/mapbox/mapbox-android-demo测试了此.

这是我的其余设置

  • macOS El Capitan 10.11.6
  • Android Studio 2.2
  • 特定于我的mapbox-android-demo编译
  • classpath 'com.android.tools.build:gradle:2.2.0'
  • supportLibVersion = '24.2.0'
  • buildToolsVersion '24.0.1'
  • macOS El Capitan 10.11.6
  • Android Studio 2.2
  • Specific to my mapbox-android-demo compile
  • classpath 'com.android.tools.build:gradle:2.2.0'
  • supportLibVersion = '24.2.0'
  • buildToolsVersion '24.0.1'

这篇关于Mapbox Android SDK崩溃-"java.lang.Error:顶点着色器填充无法编译"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆