簡體   English   中英

強制Android Studio編譯外部庫的ARM64版本

[英]Force Android Studio to compile ARM64 versions of external libraries

我正在嘗試使用此處說明的方法將CrossWalk嵌入本機android: 在人行道中嵌入人行橫道

我遇到的問題是,即使Studio在Maven存儲庫中,Android Studio仍未為ARM64構建所需的庫。

這是我的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明確編譯那些庫?

好的,我終於在這里找到了解決方案: 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存儲庫:

repositories {
    mavenLocal()
}

然后編譯正確的庫:

compile 'org.xwalk:xwalk_core_library:22.52.561.4-arm64'

希望它對將來的人有所幫助。

看看https://crosswalk-project.org/documentation/android/embedding_crosswalk/crosswalk_aar.html中的 Crosswalk AAR版本部分:

  1. 每個APK支持不同的CPU架構(例如,針對ARM,x86)。

    產品風格定義了由項目構建的應用程序的自定義版本。 我們可以有不同的風格來為每種體系結構生成apk。

     android { ... productFlavors { armv7 { ndk { abiFilters "armeabi-v7a", "" } } x86 { ndk { abiFilters "x86", "" } } } } 

    從清單中獲取版本代碼。 在版本代碼的末尾添加一個額外的數字,以隱式指定體系結構。 x86的最后一位是4,手臂是2。

     versionCode manifest.versionCode + 4 
  2. 使用Gradle構建項目,以下命令將在build / apk目錄中構建相應的arch apk。

     $ gradle assemblex86 $ gradle assemblearmv7 

    使用$ gradle build一次構建arm和x86 APK。

OpenCV將這些不可思議的字符串用於arm64:數字3和abiFilter arm64-v8a (參考)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM