在为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库中,那将是很大的帮助。
谢谢