2015-09-07 84 views
1

我已閱讀所有與此問題相關的SO問題,但沒有人幫助我解決此問題。據Google Play稱,我上傳了一個早期的alpha版本,支持大約8000多種設備,但當前版本支持零。Android應用支持零設備?

我只有兩個使用權限聲明,沒有使用功能聲明。我嘗試刪除使用權限聲明,但(儘管我得到另一個不同的警告,說明帳單缺席),但據稱我還支持零設備,即使沒有這些設備。

的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.hearttech.intimacytoolbox" > 

    <uses-permission android:name="com.android.vending.BILLING" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:name=".Application" 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_shortname" 
     android:theme="@style/Theme.NoTitle" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_shortname" 
      android:launchMode="singleTop" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     [SNIPPED a bunch of other activities from here for length] 
    </application> 
</manifest> 

的build.gradle:

apply plugin: 'com.android.application' 
android { 
    signingConfigs { 
     config { 
      keyAlias 'IntimacyToolboxKey' 
      keyPassword 'fakepassword' 
      storeFile file('/Users/dave/Dropbox/Intimacy Toolbox/android/Ancillaries/android.jks') 
      storePassword 'fakepassword' 
     } 
    } 
    compileSdkVersion 23 
    buildToolsVersion "23" 
    defaultConfig { 
     applicationId "com.hearttech.intimacytoolbox" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 3 
     versionName '0.2' 

    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      signingConfig signingConfigs.config 
     } 
     debug { 
      debuggable true 
     } 
    } 
    sourceSets { 
     main { assets.srcDirs = ['src/main/assets'] } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile('org.simpleframework:simple-xml:2.7.1') { 
     exclude module: 'stax' 
     exclude module: 'stax-api' 
     exclude module: 'xpp3' 
    } 
    compile 'com.android.support:appcompat-v7:23.0.0' 
    compile 'com.google.guava:guava-collections:r03' 
    compile 'com.google.guava:guava-io:r03' 
    compile 'com.google.guava:guava-base:r03' 
    compile 'com.android.support:support-v4:23.0.0' 
    compile 'com.android.support:support-annotations:23.0.0' 
    compile 'com.android.support:cardview-v7:23.0.0' 
    compile 'uk.co.chrisjenx:calligraphy:2.1.0' 
    compile 'org.apache.directory.studio:org.apache.commons.codec:1.8' 
    compile 'com.anjlab.android.iab.v3:library:1.0.27' 
} 

我已經看到重複的庫可能會導致此問題的地方,但我還沒有添加任何使用jcenter的依賴系統之外的任何東西。在gradle這個日誌輸出,只列出這些庫爲已準備:

:app:prepareComAndroidSupportAppcompatV72300Library UP-TO-DATE 
:app:prepareComAndroidSupportCardviewV72300Library UP-TO-DATE 
:app:prepareComAndroidSupportSupportV42300Library UP-TO-DATE 
:app:prepareUkCoChrisjenxCalligraphy210Library UP-TO-DATE 

我將不勝感激任何見解,爲什麼谷歌播放認爲我不支持任何設備。提前致謝!

回答

3

因此,問題原來是Apache Commons編解碼器庫。我已經使用jcenral(Android Studio的默認存儲庫)導入了庫。這對我需要的其他庫非常有用,但對於Apache Commons,當以這種方式上傳APK時,Google Play APK上載程序將commons-codec-1.8.jar列爲應用程序的「原生平臺」,這顯然會使應用程序不兼容與所有設備。

爲了解決這個問題,我從Apache Commons網站下載了.jar文件,並將其添加到我的[project root]/app/libs目錄,並從gradle.build中刪除了依賴關係行。這解決了問題!

-1

雖然gradle應該爲你做這件事,但試試在你的應用清單中加入這個。

<uses-sdk 
    android:minSdkVersion="15" 
    android:targetSdkVersion="23" /> 
+0

感謝您的建議,但這沒有幫助,這是有道理的:爲什麼添加更嚴格的聲明導致限制性較小的設備適用性? –