添加特定于abi的.aar库

时间:2018-10-02 04:48:47

标签: android gradle abi

在为Android编译LibVLC时,您将为每个ABI获得一个AAR文件,我想知道如何为每个ABI添加一个依赖关系。

首先尝试,packagingOptions:

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
        if (output.getFilter(OutputFile.ABI) == "armeabi-v7a") {
            packagingOptions {
                exclude 'libs/libvlc-3.0.13-arm64-v8a.aar'
                exclude 'libs/libvlc-3.0.13-x86_64.aar'
                exclude 'libs/libvlc-3.0.13-x86.aar'
            }
        } else if (output.getFilter(OutputFile.ABI) == "arm64-v8a") {
            packagingOptions {
                exclude 'libs/libvlc-3.0.13-armeabi-v7a.aar'
                exclude 'libs/libvlc-3.0.13-x86_64.aar'
                exclude 'libs/libvlc-3.0.13-x86.aar'
            }
        } else if (output.getFilter(OutputFile.ABI) == "x86_64") {
            packagingOptions {
                exclude 'libs/libvlc-3.0.13-arm64-v8a.aar'
                exclude 'libs/libvlc-3.0.13-armeabi-v7a.aar'
                exclude 'libs/libvlc-3.0.13-x86.aar'
            }
        } else if (output.getFilter(OutputFile.ABI) == "x86") {
            packagingOptions {
                exclude 'libs/libvlc-3.0.13-arm64-v8a.aar'
                exclude 'libs/libvlc-3.0.13-armeabi-v7a.aar'
                exclude 'libs/libvlc-3.0.13-x86_64.aar'
            }
        }
    }
}

// ...
dependencies{
    implementation fileTree(include: ['*.aar'], dir: 'libs')
}

我遇到一个错误,说已经创建了android任务

第二次尝试:

def currentAbi = ""

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
        currentAbi = output.getFilter(OutputFile.ABI)
    }
}

// ...

dependencies{
    implementation fileTree(include: ["libvlc-3.0.13-${currentAbi}.aar"], dir: 'libs')
}

但是我想currentAbi值不会改变,因为不包括我的VLC类。

因此,如果任何人都有解决方案将依赖项添加到特定于ABI的aar库中,那将是很大的帮助。

谢谢

0 个答案:

没有答案