2012-06-22 18 views
14

Tôi có một ứng dụng đã được triển khai để phát và tương thích với mọi thiết bị chạy phiên bản 2.1 trở lên; không có các hạn chế hoặc yêu cầu đặc biệt được xác định trong AndroidManifest.xml.Ứng dụng Android không tương thích với các thiết bị tải xuống Google Play

Đã có một số khiếu nại từ người dùng cố gắng cài đặt ứng dụng qua Google Play nhưng nhận được thông báo rằng ứng dụng không tương thích. Trong tất cả các trường hợp này, việc tải trước ứng dụng hoạt động hoàn hảo.

Tìm hiểu kỹ hơn về vấn đề có vẻ như trong mọi trường hợp, người báo cáo sự cố đang sử dụng thiết bị không được cài đặt Google Play. I E. thiết bị có thể đã thất bại trong CTS của Google.

Có nói rằng, họ có thể cài đặt các ứng dụng khác qua Google Play chứ không phải của chúng tôi. Một lần nữa, sideloading ứng dụng của chúng tôi vào các thiết bị này hoạt động tốt. Có ai biết tại sao điều này có thể? Tôi giả sử nó phải là một cái gì đó tôi đang làm không chính xác trong AndroidManifest.xml nhưng tôi thấy không có gì đáng ngờ.

EDIT: Đây là AndroidManifest.xml, thay đổi để bảo vệ tên của những người vô tội:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.foo.bar" 
     android:versionCode="1" 
     android:versionName="@string/global_app_version"> 
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <application android:label="@string/global_app_short_name" android:icon="@drawable/app"> 
     <activity android:name=".HomeActivity" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 

     <activity android:name=".AActivity" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
      </intent-filter> 
     </activity> 

     <activity android:name=".BActivity" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
      </intent-filter> 
     </activity> 

     <activity android:name=".CActivity" 
        android:launchMode="singleTask" 
        android:theme="@android:style/Theme.Black.NoTitleBar" 
        android:windowSoftInputMode="stateHidden"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
      </intent-filter> 
     </activity> 

     <activity android:name=".DActivity" 
        android:launchMode="singleTask" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
      </intent-filter> 
     </activity> 

     <activity android:name=".EActivity" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
      </intent-filter> 
     </activity> 

     <activity android:name=".FActivity" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
      </intent-filter> 
     </activity> 

     <!-- This activity is invoked whenever an xxx is opened --> 
     <activity android:name=".GActivity" 
        android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter android:label="@string/global_app_short_name"> 
       <action android:name="android.intent.action.VIEW"/> 
       <action android:name="android.intent.action.EDIT"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <category android:name="android.intent.category.BROWSABLE"/> 
       <data android:mimeType="application/xxx"/> 
       <data android:mimeType="application/yyy"/> 
       <data android:mimeType="application/zzz"/> 
       <data android:mimeType="application/aaa"/> 
       <data android:mimeType="application/bbb"/> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 
+0

Tôi gặp vấn đề tương tự và không biết phải nói gì với người tiêu dùng ... – Mark

+0

Bạn có sử dụng bất kỳ thứ gì liên quan đến Cửa hàng Play hay không, ví dụ: Mua hàng trong ứng dụng hoặc gói cấp phép LVL? Một cái gì đó như thế này sẽ là thủ phạm có khả năng nhất. –

+0

Không, trên thực tế, sự cho phép duy nhất chúng tôi sử dụng là lưu trữ - nghĩa là. sdcard, vv nếu có. Đó là một ứng dụng miễn phí. – Nick

Trả lời

8

Tôi đã tìm thấy thủ phạm - Đã bật Bảo vệ sao chép. Từ ghi chú của Google trên các thiết lập: http://developer.android.com/guide/google/play/filters.html

Để sao chép bảo vệ một ứng dụng, thiết lập bảo vệ bản quyền sang "On" khi bạn tùy chọn cấu hình xuất bản cho các ứng dụng của bạn. Google Play sẽ không hiển thị các ứng dụng được bảo vệ bản quyền trên thiết bị nhà phát triển hoặc thiết bị chưa được phát hành.

Nói cách khác, việc tải phụ Google Play chỉ là tác dụng phụ của việc "thiết bị chưa được phát hành"/thiết bị không thành công với Google CTS. Trong mọi trường hợp, việc tắt bảo vệ bản sao đã giải quyết được sự cố.

0

Có lẽ phần cứng họ đang chạy không tương thích với ứng dụng của bạn? Có lẽ bạn cần một màn hình cảm ứng và họ không có nó; có lẽ bạn cần điện thoại và họ không có nó?

Lưu ý rằng tùy thuộc vào api mục tiêu của bạn, bạn có thể nhận được một số yêu cầu phần cứng tiềm ẩn.

Dù sao, cố gắng tìm nhật ký từ chúng sẽ hữu ích nhất!

+0

Nếu nó là bất kỳ của các bên trên thì sideloading sẽ không làm việc. Tôi sẽ nhận được nhật ký nào từ họ? Không có cài đặt ứng dụng = không có nhật ký nào được tạo. – Nick

+0

bạn có thể thấy nhật ký của thiết bị cho biết vấn đề là gì (ví dụ: PackageManager sẽ nói điều gì đó như "Không thể cài đặt ứng dụng do không tương thích XXX"). Đây không phải là nhật ký của ứng dụng nhưng nhật ký hệ thống cho biết điều gì đó. –

+0

Ứng dụng không xuất hiện trong google play trên thiết bị (vì chơi nghĩ rằng nó không tương thích), cách duy nhất chúng tôi đã tìm thấy cho đến nay thậm chí cố gắng cài đặt qua Play là truy cập play.google.com, tìm ứng dụng và nhấp vào cài đặt và sau đó chọn thiết bị để gửi ứng dụng đến, sau đó trình bày lỗi, nhưng không dẫn đến thông báo tường trình từ gói mgr. – Nick

0

Có thể dùng bị ảnh hưởng có thể thử và đặt lại ứng dụng Cửa hàng Google Play trên thiết bị của họ:

Menu -> Cài đặt -> Ứng dụng -> Google Play Store

Sau đó bấm vào nút "Buộc chặt chẽ" và "Xóa dữ liệu"

Sau đó bắt đầu lại Cửa hàng Google Play, đăng nhập và thử cài đặt lại ứng dụng của bạn.

0

Nếu bạn có bất kỳ sản phẩm trong ứng dụng nào hoặc nếu bạn đang bán ứng dụng bằng tiền thì Google Play tự động lọc bạn khỏi một số quốc gia nhất định mà nó không hỗ trợ thanh toán. Bạn có thể gửi email cho Google để yêu cầu here.

+0

Ai đó khác đã đề xuất ở trên - không có thứ gì giống như đang được sử dụng. Ứng dụng miễn phí 100%. – Nick

+1

Ahh, xin lỗi lỗi của tôi - nó vẫn đáng để hỏi họ về nó, tuy nhiên, họ có thêm thông tin về nó hơn chúng tôi! :) –

+0

chắc chắn - thats trị giá +1 chắc chắn :) – Nick