2014-02-13 4 views
2

행운을 잃지 않고 stackoverflow 및 기타 서비스에서 2 일 동안 답변을 찾으려고합니다 ... Google Play에 앱을 게시했습니다. 거기에 있지만 대부분의 장치와 호환되지 않습니다. Eclipse와 TestFlight를 사용하여 Nexus 7에서 테스트를 실행하여 문제가 없었습니다. 그래서 나는 AndroidManifest와 관련이 있다고 확신합니다.Google Play의 Android 애플리케이션 - 모든 기기와 호환되지 않음

Application.apk 

package: name='com.test.application' 

versionCode='1' 

versionName='1.0' 

sdkVersion:'11' 

targetSdkVersion:'19' 

uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE' 

uses-permission:'android.permission.ACCESS_NETWORK_STATE' 

uses-permission:'android.permission.INTERNET' 

application-label:'Application' 

application-label-da:'Application' 

application-label-el:'Application' 

application-icon-160:'res/drawable-mdpi/ic_launcher.png' 

application-icon-240:'res/drawable-hdpi/ic_launcher.png' 

application-icon-320:'res/drawable-xhdpi/ic_launcher.png' 

application-icon-480:'res/drawable-xxhdpi/ic_launcher.png' 

application: label='Application' icon='res/drawable-mdpi/ic_launcher.png' 

application-debuggable 

launchable-activity: name='com.test.application.activity.Launcher' 

label='Application' icon='' 

uses-permission:'android.permission.READ_EXTERNAL_STORAGE' 

uses-implied-permission:'android.permission.READ_EXTERNAL_STORAGE','requested 

WRITE_EXTERNAL_STORAGE' 

uses-feature:'android.hardware.touchscreen' 

uses-implied-feature:'android.hardware.touchscreen','assumed you require a touch screen 

unless explicitly made optional' 

uses-feature:'android.hardware.screen.landscape' 

uses-implied-feature:'android.hardware.screen.landscape','one or more activities have 
specified a landscape orientation' 

main 

other-activities 

supports-screens: 'small' 'normal' 'large' 'xlarge' 

supports-any-density: 'true' 

locales: '--_--' 'da' 'el' 

densities: '160' '240' '320' '480' 

여기가 매니페스트입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.test.application" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="19" /> 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:allowBackup="true" 
     android:hardwareAccelerated="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 
     android:debuggable="false" 
     android:name=".ApplicationApplication"> 
     <activity 
      android:name="com.test.application.activity.Launcher" 
      android:label="@string/app_name" 
      android:screenOrientation="sensorLandscape" 
      android:configChanges="orientation|screenSize|keyboardHidden|locale"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.test.application.activity.SomeActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="sensorLandscape" 
      android:windowSoftInputMode="adjustPan" 
      android:configChanges="orientation|screenSize|keyboardHidden|locale"> 
     </activity> 
     <activity 
      android:name="com.test.application.activity.AnotherActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="sensorLandscape" 
      android:windowSoftInputMode="adjustPan" 
      android:configChanges="orientation|screenSize|keyboardHidden|locale"> 
     </activity> 
    </application> 

</manifest> 

서명 된 APK가 안드로이드 스튜디오로 지어진

여기 aapt에 덤프 배지 결과입니다. 이 "응용 프로그램 디버깅 가능"은 의심스러운 것 같습니다. 지구상에서 Nexus 7과 호환되지 않는 이유는 무엇입니까?

+0

Android Studio를 사용하는 경우 릴리스 buildType에서 build.gradle 파일에'debuggable false'를 추가하십시오. – pyus13

답변

0

좋아요, 결국 아무런 문제가 없다는 것이 판명되었습니다. 게시 프로세스 책임자가 국가 제한 사항을 설정했습니다. 그 이유는 앱이 특정 국가의 모든 기기와 호환되지 않기 때문입니다.

3

앱이 호환되지 않는다고 말하는 것입니까?

minSDK 버전뿐 아니라 매니페스트 파일에 대한 주어진 권한에 대해 Google이 우려하는 내용이기 때문에 장치에 오류가 표시됩니다.

당신이 뭔가를 입력 한 경우와 마찬가지로 :

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

당신의 탭을 지원하지 않습니다.

uses-permission 대신 <uses-feature>을 사용하십시오. 그리고 java 파일에서 필요한 하드웨어를 사용할 수 있는지 확인하십시오. 당신이이 같은 매니페스트를 업데이트해야 사용하는 경우

http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference

경우 :

<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.READ_CONTACTS"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-feature android:name="android.hardware.camera" android:required="false" /> 
<uses-feature android:name="android.hardware.telephony" android:required="false" /> 
<uses-feature android:name="android.hardware.screen.portrait" android:required="false"/> 

을 당신은 함께 <uses-permission>을 넣어야 할 <uses-feature>를 들어

는 아래의 링크를 참조 필요에 따라 <uses-feature>. 그것은 당신을 도울 것입니다 경우

그리고 작은 팁 :

  • 당신은 낮은 버전의 장치와 호환되도록 약 android:minSdkVersion뿐만 아니라 명심해야한다. 다음과 같이 설정해야합니다 : android:minSdkVersion="11".
+0

좋은 설명 .. @Avijit. – InnocentKiller

+0

감사합니다. @InnocentKiller – Avijit

+0

이 매니페스트에서 알 수 있듯이 태블릿 비 호환성에 영향을 줄 수있는 것은 없습니다. 첨부 된 매니페스트 및 aapt 덤핑 배지 결과를 확인 했습니까? – narath

0

매니페스트 세트 android:minSdkVersion="11" - 이는 Android 3.0 이하의 모든 기기가 지원되지 않음을 의미합니다. 또는 위 버전 3.0 장치의 문제가 여전히 목록에 나타났습니다.

+0

Android 4.X에서도 모든 기기에 문제가있었습니다. – narath