android - 在 Mac 上编译 Android 时构建 libwebviewchromium.so 时出错

标签 android c++ macos android-source

我在 OS X Mavericks 10.9.3 中编译 Android 时遇到困难。我没有对源代码进行任何更改。

初始化构建环境,我这样做:

repo init -b master
repo sync
repo forall -vc "git reset --hard"
lunch vbox_x86-eng

make 的结果是:http://pastebin.com/nk0Sudgx

我得到很多关于 WebCore 的 undefined reference

target SharedLib: libwebviewchromium (out/target/product/vbox_x86/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so)
/Volumes/Android/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.8/bin/../lib/gcc/x86_64-linux-android/4.8/../../../../x86_64-linux-android/bin/ld.gold: warning: hidden symbol 'SkBitmap::lockPixels() const' in out/target/product/vbox_x86/obj/STATIC_LIBRARIES/skia_skia_library_gyp_intermediates/skia_skia_library_gyp.a(SkBitmap.o) is referenced by DSO out/target/product/vbox_x86/obj/lib/libjnigraphics.so
out/target/product/vbox_x86/obj/GYP/shared_intermediates/blink/bindings/V8WebGLRenderingContext.cpp:2811: error: undefined reference to 'WebCore::WebGLRenderingContextBase::useProgram(WebCore::WebGLProgram*)'

[ ... ]

out/target/product/vbox_x86/obj/GYP/shared_intermediates/blink/bindings/V8WebGLRenderingContext.cpp:1543: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getShaderPrecisionFormat(unsigned int, unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:471: error: undefined reference to 'WebCore::WebGLRenderingContextBase::isContextLost() const'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:788: error: undefined reference to 'WebCore::WebGLRenderingContextBase::uniformMatrix4fv(WebCore::WebGLUniformLocation const*, unsigned char, WTF::Float32Array*)'

[ ... ]

external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:410: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getParameter(unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:434: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getProgramParameter(WebCore::WebGLProgram*, unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:464: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getShaderParameter(WebCore::WebGLShader*, unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:516: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getUniform(WebCore::WebGLProgram*, WebCore::WebGLUniformLocation const*)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:299: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getBufferParameter(unsigned int, unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:309: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getVertexAttrib(unsigned int, unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:302: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getRenderbufferParameter(unsigned int, unsigned int)'
external/chromium_org/third_party/WebKit/Source/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:305: error: undefined reference to 'WebCore::WebGLRenderingContextBase::getTexParameter(unsigned int, unsigned int)'
external/chromium_org/third_party/WebKit/Source/core/html/canvas/ANGLEInstancedArrays.cpp:75: error: undefined reference to 'WebCore::WebGLRenderingContextBase::drawArraysInstancedANGLE(unsigned int, int, int, int)'
external/chromium_org/third_party/WebKit/Source/core/html/canvas/ANGLEInstancedArrays.cpp:83: error: undefined reference to 'WebCore::WebGLRenderingContextBase::drawElementsInstancedANGLE(unsigned int, int, unsigned int, long long, int)'
external/chromium_org/third_party/WebKit/Source/core/html/canvas/ANGLEInstancedArrays.cpp:91: error: undefined reference to 'WebCore::WebGLRenderingContextBase::vertexAttribDivisorANGLE(unsigned int, unsigned int)'
external/chromium_org/third_party/WebKit/Source/core/html/canvas/OESVertexArrayObject.cpp:63: error: undefined reference to 'WebCore::WebGLRenderingContextBase::addContextObject(WebCore::WebGLContextObject*)'
external/chromium_org/third_party/WebKit/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp:57: error: undefined reference to 'WebCore::WebGLContextObject::~WebGLContextObject()'
external/chromium_org/third_party/WebKit/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp:43: error: undefined reference to 'WebCore::WebGLContextObject::WebGLContextObject(WebCore::WebGLRenderingContextBase*)'
out/target/product/vbox_x86/obj/STATIC_LIBRARIES/third_party_WebKit_Source_core_webcore_html_gyp_intermediates/third_party_WebKit_Source_core_webcore_html_gyp.a(WebGLVertexArrayObjectOES.o):WebGLVertexArrayObjectOES.cpp:vtable for WebCore::WebGLVertexArrayObjectOES: error: undefined reference to 'WebCore::WebGLContextObject::getAWebGraphicsContext3D() const'
collect2: error: ld returned 1 exit status
make: *** [out/target/product/vbox_x86/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] Error 1

看起来像是链接器错误,但我不知道原因。有什么想法吗?

最佳答案

原因可能是您没有足够的 Ram 空间这是来自 XDA (http://forum.xda-developers.com/showthread.php?t=2585207) 的一个线程,如果您在 VM 上或创建 Linux-Swap 分区,请尝试增加 Ram,同时确保您为从 Developer.appple.com 下载的 Xcode 5 选择了 xcode-5.0.2,然后将其作为 Xcode-5.0.2.app 放在您的应用程序文件夹中,然后运行 ​​

sudo xcode-select --switch /Applications/Xcode-5.0.2.app/Contents/Developer/

关于android - 在 Mac 上编译 Android 时构建 libwebviewchromium.so 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922668/

相关文章:

c++ - RCPP 'candidate function has different number of parameters (expected 0 but has 1)'

java - 为 IntelliJ 13 设置 Maven

java - 如何将现有的Java程序转移到Android? (要导入什么)

android - 如何使用 DefaultDatabaseErrorHandler 处理 Android 中的数据库损坏

java - 离开 Activity 时如何停止应用程序的振动?

c++ - 不同类访问的数据的单一拷贝

c++ - 处理指针时,*p1 和 p 在控制台中输出的不同值的含义

android - Xamarin for Android:无法从外部文件夹播放mp3

macos - FireMonkey/Rad Studio XE2 : How can I show the SaveDialog filter on OS X?

java - 如何让机器保持清醒?