2016-06-22 21 views
5

Đây là điều. Tôi có một ứng dụng tương thích với API 15 trở lên, nhưng vì nó khá lớn và tôi đã đạt đến giới hạn 65k phương pháp, tôi phải biến nó thành hậu duệ của lớp MultiDexApplication. Điều này làm chậm thời gian xây dựng một chút, vì vậy tôi đã phải thực hiện một số tối ưu hóa để tăng tốc quá trình. Tôi có đoạn code sau trong manifest của tôi, mà làm giảm đáng kể xây dựng lần khi xây dựng cho API> = 21 (lấy từ một số khác SO thread):Android Studio Lint - đặt cấp API cho lint

productFlavors { 
     dev { 
      minSdkVersion 21 
     } 
     prod { 
      minSdkVersion 15 
     } 
    } 

Tất cả mọi thứ đang làm việc một cách hoàn hảo, nhưng vấn đề là trong sự phát triển , Android studio cho rằng cấp minSdkVersion SDK của tôi là 21 (chính xác) và lint không hiển thị cho tôi API không tương thích (15-21). Điều tôi thực sự muốn là có thể xây dựng với minSdkVersion được đặt thành 21 (xây dựng nhanh), nhưng đặt "lint minSdkVersion" thành 15, vì vậy tôi thấy các phần của mã không tương thích với API cũ hơn 21. Tôi đã cố gắng để google nó và cũng để xem xét AS tùy chọn lint nhưng tôi đã không tìm thấy bất cứ điều gì hữu ích. Cảm ơn mọi lời đề nghị. Giải pháp hiện tại của tôi là chuyển đổi minSdkVersion trong hương vị dev thành 21 và kiểm tra xem có lỗi nào không, nhưng đây không thực sự là điều tôi muốn.

+0

Để tham khảo này là theo dõi vấn đề android như một tính năng sắp tới: https://code.google.com/p/android/issues/detail?id=200347 – Gak2

Trả lời

4

This gist trả lời câu hỏi của bạn. Nó cho thấy cách xây dựng dự án với bất kỳ giá trị SDK tối thiểu nào, trong khi vẫn duy trì giá trị SDK tối thiểu cho các cảnh báo Lint.

Để tóm tắt bài viết, bạn có thể tự động tính toán giá trị minSdkVersion:

int minSdk = hasProperty('devMinSdk') ? devMinSdk.toInteger() : 15 
apply plugin: 'com.android.application' 

android { 
    ... 
    defaultConfig { 
     minSdkVersion minSdk 
     ... 
    } 
} 

Trong ví dụ này, chúng tôi đang kiểm tra nếu devMinSdk tài sản quy định, và nếu đúng - chúng tôi đang sử dụng nó. Nếu không, chúng tôi mặc định là 15.

Làm cách nào để vượt qua giá trị devMinSdk để tạo tập lệnh? Hai lựa chọn:

Sử dụng dòng lệnh:

./gradlew installDebug -PdevMinSdk=21 

Sử dụng ưu đãi về Android Studio:

Đến Preferences (Cài đặt trên Windows) ->xây dựng, thi công, Triển khai ->Trình biên dịch -> đặt -PdevMinSdk=21 trong Tùy chọn dòng lệnh hộp văn bản.

Android Studio compiler options

+1

đó là một chút kỳ lạ này là không được tích hợp trong AS. Cảm ơn rất nhiều! – vanomart

+1

Có một thời gian khó hiểu tại sao công trình này hoạt động. Có vẻ như một lỗi AS. –

Các vấn đề liên quan