使用CrossWalk嵌入式构建应用程序

时间:2014-09-30 08:54:34

标签: android android-resources crosswalk-runtime android-make

我正在尝试构建一个以CrossWalk作为依赖项的浏览器。

但我一直对XWalkInternalResources提出异常:

W/dalvikvm( 3165): VFY: unable to resolve static field 4639 (cpu_arch_mismatch_message) in Lorg/xwalk/core/R$string;
D/dalvikvm( 3165): VFY: replacing opcode 0x60 at 0x001c
I/dalvikvm( 3165): DexOpt: unable to optimize static field ref 0x1220 at 0x2d in Lorg/xwalk/core/XWalkView;.init
I/dalvikvm( 3165): DexOpt: unable to optimize static field ref 0x1226 at 0x40 in Lorg/xwalk/core/XWalkView;.init
I/dalvikvm( 3165): DexOpt: unable to optimize static field ref 0x122e at 0x4b in Lorg/xwalk/core/XWalkView;.init
W/XWalkInternalResources( 3165): org.xwalk.core.R$styleis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$stringis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$menuis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$layoutis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$idis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$drawableis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$dimenis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$attris not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$dimenis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$coloris not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$styleis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$drawableis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$layoutis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$idis not found.
W/XWalkInternalResources( 3165): org.xwalk.core.R$stringis not found.
I/LibraryLoader( 3165): Loading: xwalkcore
I/LibraryLoader( 3165): Time to load native libraries: 23 ms (timestamps 5556-5579)
I/LibraryLoader( 3165): Expected native library version number "",actual native library version number ""
I/LibraryLoader( 3165): Expected native library version number "",actual native library version number ""
I/chromium( 3165): [INFO:library_loader_hooks.cc(106)] Chromium logging enabled: level = 0, default verbosity = 0
D/dalvikvm( 3165): GC_CONCURRENT freed 244K, 6% free 4279K/4552K, paused 3ms+2ms, total 19ms
I/BrowserStartupController( 3165): Initializing chromium process, renderers=0
F/chromium( 3165): [FATAL:content_main_runner.cc(689)] Check failed: base::i18n::InitializeICU().
F/libc    ( 3165): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 3165 (browser)

为我的浏览器制作文件:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_JAVA_LIBRARIES := DukaSharedLibrary\
                               DukaBrowserLibrary\
                               JsoupBrowserLibrary\
                               CrossWalkLibrary

LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR += vendor/duka/DukaSharedLibrary/res
LOCAL_RESOURCE_DIR += vendor/duka/DukaBrowserLibrary/res
LOCAL_RESOURCE_DIR += vendor/duka/CrossWalk/res

LOCAL_MANIFEST_FILE := AndroidManifest.xml
LOCAL_PACKAGE_NAME := DukaBrowser
LOCAL_CERTIFICATE := platform

LOCAL_ASSET_DIR := vendor/duka/DukaSharedLibrary/assets

LOCAL_AAPT_FLAGS := --auto-add-overlay

LOCAL_PROGUARD_ENABLED := disabled

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := JsoupBrowserLibrary:libs/jsoup-1.7.3.jar
include $(BUILD_MULTI_PREBUILT)

为CrossWalk制作文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := CrossWalkLibrary
LOCAL_SDK_VERSION := 17

LOCAL_SRC_FILES := $(call all-java-files-under, src) 
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res

LOCAL_STATIC_JAVA_LIBRARIES := XWalkLibrary

LOCAL_PROGUARD_ENABLED := disabled

include $(BUILD_STATIC_JAVA_LIBRARY)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := XWalkLibrary:libs/xwalk_core_library_java.jar

include $(BUILD_MULTI_PREBUILT)

这里有什么奇怪的吗?我知道,人行横道项目中包含的.jar文件可以在浏览器项目中找到,因为我已经摆脱了之前的错误。

我是否需要执行任何其他步骤来包含这些内部资源?

3 个答案:

答案 0 :(得分:0)

我在Crosswalk和Android Studio上遇到了同样的问题。 原来,编译器在apk文件中没有包含资源目录。

您可以将apk文件的扩展名更改为zip并检查其中包含Crosswalk的资源。

答案 1 :(得分:0)

10个月前......你忘了关闭吗?

我想你应该导入xwalk_core_library并将其添加到framework。(只需修复它:))

列表:

模块:

app
framework
core_xwalk_library

和依赖

应用程式:

framework

框架:

core_xwalk_library

现在工作室可以拿到你的罐子......

答案 2 :(得分:-1)

转到Crosswalk Download Page并下载“Android webview(ARM)”的稳定版本。将文件解压缩到C:\并从本文档的第3步开始: Documentation at Github

我也有一些问题,但这对我有用。首先,我将文件提取到另一条路径,这太长了,所以我遇到了很多问题。在“C:\ crosswalk-webview-8.37.189.12-arm”中它起作用了。