我一直在使用Android的0.13插件的新APK splits功能,我设法将我的大部分构建脚本的大小减半,并将构建速度提高了4倍。我的应用程序为每个平台提供了超过20MB的库,并且保持较小的APK大小是一个优先事项。在0.13之前,我们有几个脚本可以在正确的构建文件夹中动态上演.so文件(取决于我们正在构建的平台)并执行完整版本。这种方法很好但速度非常慢,并且涉及到gradle和non-gradle脚本的不幸混合。
最新的APK拆分功能解决了我的大部分困境,但我仍然遇到armeabi-v7a库的问题。似乎当gradle构建armeabi-v7a风格时,它只查找/ libs / armeabi-v7a文件夹中定义的库,并忽略为armeabi而不是armeabi-v7a编译的库。
例如,这是我的应用之一:
App1/
- libs
- armeabi
- lib1.so
- lib2.so
- lib3.so
- armeabi-v7a
- lib3.so
- x86
- lib1.so
- lib2.so
- lib3.so
当我为armeabi-v7a编译它时,gradle包括armeabi-v7a / lib3.so但不包括armeabi / lib1.so和armeabi / lib2.so。在运行时,APK无法工作(显然),因为它无法找到lib1.so和lib2.so。
有没有办法告诉gradle将armeabi /中没有的库添加到armeabi-v7a / armeabi-v7a APK中?
答案 0 :(得分:0)
我打开了一个问题b.android.com(请参阅https://code.google.com/p/android/issues/detail?id=77490),这是0.13+的已知限制。希望它能很快得到解决。