2013-01-23 38 views
9

Tôi hiện đang gặp sự cố với tính năng lọc Google Play và lớp mật độ mới xxhpdi, được giới thiệu ở cấp API 16. Ứng dụng của tôi được chia thành 3 tệp APK (Tôi biết đó không phải là thực hành tốt nhất, nhưng do một kế hoạch xấu, tôi phải làm như thế này vào lúc này). Phần thú vị là phiên bản dành cho Android 4.0, chỉ dành cho điện thoại thông minh. tôi đã thiết lập bộ lọc trên thị trường trong AndroidManifest.xml như thế này:Android - Google Play lọc xxhdpi

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17"/> 
<compatible-screens> 
    <screen android:screenDensity="ldpi" android:screenSize="small"/> 
    <screen android:screenDensity="mdpi" android:screenSize="small"/> 
    <screen android:screenDensity="hdpi" android:screenSize="small"/> 
    <screen android:screenDensity="xhdpi" android:screenSize="small"/> 

    <screen android:screenDensity="ldpi" android:screenSize="normal"/> 
    <screen android:screenDensity="mdpi" android:screenSize="normal"/> 
    <screen android:screenDensity="hdpi" android:screenSize="normal"/> 
    <screen android:screenDensity="xhdpi" android:screenSize="normal"/> 
</compatible-screens> 

Vấn đề bây giờ là, rằng các thiết bị mới với màn hình độ phân giải 1080p như HTC Droid DNA không thể nhìn thấy hoặc cài đặt ứng dụng của tôi, bởi vì tôi không nói rõ nó cũng hỗ trợ màn hình xxhdpi. Vấn đề là, bởi vì tôi đặt minSdkVersion tôi để API Level 14, đó là Android ICS, tôi không thể chỉ cần thêm dòng:

<screen android:screenDensity="xxhdpi" android:screenSize="normal"/> 

Điều này là do mức API 14 không biết lớp xxhdpi. Có giải pháp nào cho vấn đề của tôi mà không phải tạo tệp APK riêng biệt thứ 4 không?

Cảm ơn bạn.

+0

Để báo giá * Thận trọng: Thông thường, bạn không nên sử dụng phần tử tệp kê khai này. Sử dụng phần tử này có thể làm giảm đáng kể cơ sở người dùng tiềm năng cho ứng dụng của bạn, bằng cách không cho phép người dùng cài đặt ứng dụng của bạn nếu họ có thiết bị có cấu hình màn hình mà bạn chưa liệt kê. Bạn chỉ nên sử dụng nó như một phương sách cuối cùng * từ [Developer's SDK] (http://developer.android.com/guide/topics/manifest/compatible-screens-element.html) – t0mm13b

+0

xxhdpi chỉ có trong JB lên trên AFAICT, trong ngắn, bạn không may mắn. Cách dễ nhất tôi nghĩ là xây dựng lại JB nhắm mục tiêu, hay còn gọi là API 20 hoặc 21, sau đó nó nên làm điều đó. – t0mm13b

+0

Helle, cảm ơn câu trả lời. Ứng dụng đã nhắm mục tiêu JB MR1, vì đây là cấp API 17. API cấp 14 là Android 4.0. – NiThDi

Trả lời

24

Tôi tìm thấy giải pháp: Thay vì thêm dòng

<screen android:screenDensity="xxhdpi" android:screenSize="normal"/> 

đến phần tương thích-màn hình, nó có vẻ như giá trị số đang làm việc cũng như:

<screen android:screenDensity="480" android:screenSize="normal"/> 
+0

Vâng, đó là điều tương tự với tvdpi và 213 (có liên quan cho Nexus 7) và nó không có gì để làm với API bạn đang nhắm mục tiêu, các hằng số này là mất tích ở tất cả. Bạn nên chấp nhận câu trả lời của bạn. – brillenheini

+0

Tôi đã thử đặt giá trị 480 thay vì xxhdpi và trong khi ứng dụng tuân thủ đúng cách, khi nó chạm vào cửa hàng, nó không được hiển thị tương thích với Galaxy S4. Mặc dù có bản cập nhật mới nhất từ ​​Android, tôi vẫn không thể biên dịch - tôi nhận được các lỗi như được nêu ở trên. – djbp

1

Có vẻ là một vấn đề mở về vấn đề này: code.google.com/p/android Nó hút nhưng tôi không thể nghĩ ra một giải pháp tốt hơn.

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