Android Gradle Plugin 3.0.0-alpha4 - 不从当地AAR中挑选.so库

fas*_*que 7 android android-gradle-plugin android-studio-3.0

我目前正在将我的Android项目迁移到最新版本的Android Gradle插件,以便与Android Studio 3.0一起使用.

一切似乎工作得很好,除了我在本地AAR文件中的.so本机库文件没有打包到最终的APK.lib里面没有文件夹.

我的项目已经定义了两个风味维度,我没有看到任何关于它的错误或警告,所以我认为这不是问题.

Android Gradle插件:

classpath 'com.android.tools.build:gradle:3.0.0-alpha4'
Run Code Online (Sandbox Code Playgroud)

Gradle版本是4.0.

使用New Module...Android Studio中的选项添加本地AAR ,它始终有效.

这是build.gradle生成的:

configurations.maybeCreate("default")
artifacts.add("default", file('FILENAME.aar'))
Run Code Online (Sandbox Code Playgroud)

在应用程序中,build.gradle我像往常一样声明它:

implementation project(':NAME_OF_THE_MODULE')
Run Code Online (Sandbox Code Playgroud)

我错过了一个突破性的变化吗?以下已知问题与我的问题有关吗? While using this plugin with Android Studio, dependencies on local AAR files are not yet supported.

更新:flatDir技巧仍然可以正常工作:

flatDir {
  dirs 'libs'
}
Run Code Online (Sandbox Code Playgroud)

然后将AA复制到该文件夹​​(即app/libs)中,并以这种方式将其声明为依赖项:

implementation(name: 'libvlc', ext: 'aar')
Run Code Online (Sandbox Code Playgroud)

Ban*_*Nam 0

就我而言,使用“api”解决了问题。

而不是使用:

implementation(name: 'libvlc', ext: 'aar')

使用:

api(name: 'libvlc', ext: 'aar')

在你的库项目的 build.gradle 里面

欲了解更多信息,请参阅:

https://blog.mindorks.com/implementation-vs-api-in-gradle-3-0-494c817a6fa https://developer.android.com/studio/build/dependency.html