2015-09-07 17 views
8

Tôi có một ứng dụng bao gồm hai thư viện, trong đó cả hai thư viện đều có phụ thuộc vào thư viện gốc. Cả hai đều được bao gồm sử dụng gradle nên cấu trúc trông như thế này:Gradle loại trừ arm64 libs

MyApp

- Libary1 
-- x86, armeabi native libs 
- Library2 
-- Library3 
--- x86, armeabi, arm64-v8a 

Tôi muốn loại bỏ sự hỗ trợ arm64 như tôi cũng sẽ cần nó * .so cho library1, mà tôi không có. (Vì vậy hiện nay tôi nhận được một UnsatisfiedLinkError trên các thiết bị arm64)

Tôi đã cố gắng này: (với abiFilters "armeabi", "x86") https://stackoverflow.com/a/30799825/3325222

Nhưng tôi vẫn nhận được thư mục arm64 và file * .so trong apk của tôi ... có điều gì đó tôi đang thiếu? Công cụ abiFilter đó thậm chí sẽ hoạt động nếu các lib tự nhiên nằm sâu bên trong hệ thống phân cấp phụ thuộc đúng không?

Cảm ơn trước cho bất kỳ sự ủng hộ :)

Trả lời

13

Tôi tìm thấy một giải pháp bằng cách loại trừ cụ thể * file .so được chỉ thêm bên trong kiến ​​trúc tôi đã không muốn hỗ trợ:

packagingOptions { 
    exclude 'lib/arm64-v8a/lib.so' 
    exclude 'lib/mips/lib.so' 
} 
Các vấn đề liên quan