我正在尝试使用此处解释的方法在本机android上嵌入CrossWalk: embed crosswalk in android studio
我遇到的问题是android studio没有为ARM64构建所需的库,即使这些库位于Maven存储库中。
这是我的build.gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "my.app.id"
minSdkVersion 19
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
maven {
url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
}
flatDir{
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'org.xwalk:xwalk_core_library:22.52.561.4'
compile (name: 'wikitudesdk', ext:'aar')
testCompile 'junit:junit:4.12'
}
有没有办法告诉android studio expicitly编译这些库?
答案 0 :(得分:2)
好的,我终于找到了解决方案: diego.org
基本上,如果您需要ARM64库,首先需要自己下载正确的库:
curl -O https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/22.52.561.4/xwalk_core_library-22.52.561.4-arm64.aar
然后将其安装到本地maven存储库:
mvn install:install-file -DgroupId=org.xwalk -DartifactId=xwalk_core_library \
-Dversion=22.52.561.4-arm64 -Dpackaging=aar \
-Dfile=xwalk_core_library-22.52.561.4-arm64.aar \
-DgeneratePom=true
并更新您构建gradle,以便存储库指向您本地的maven repo:
repositories {
mavenLocal()
}
并编译正确的lib:
compile 'org.xwalk:xwalk_core_library:22.52.561.4-arm64'
希望它可以帮助某人作为未来的参考。
答案 1 :(得分:1)
查看https://crosswalk-project.org/documentation/android/embedding_crosswalk/crosswalk_aar.html中的 Crosswalk AAR版部分:
支持每个APK的不同CPU架构(例如ARM,x86)。
产品风格定义项目构建的应用程序的自定义版本。我们可以有不同的风格,为每个架构生成apk。
android { ... productFlavors { armv7 { ndk { abiFilters "armeabi-v7a", "" } } x86 { ndk { abiFilters "x86", "" } } } }
从清单中获取版本代码。在版本代码的末尾添加一个额外的数字,其中含义指定了体系结构。 x86最后一位是4,arm是2。
versionCode manifest.versionCode + 4
- 醇>
使用Gradle构建项目,以下命令将在build / apk目录中构建相应的arch apk。
$ gradle assemblex86 $ gradle assemblearmv7
使用
$ gradle build
一次构建arm和x86 APK。
OpenCV将这些魔术字符串用于arm64:数字3
和abiFilter arm64-v8a
(reference)。