2

我已经在一个项目上工作了一段时间,我几乎完成并准备将它发布到游戏商店。我能够通过调试模式通过 USB 电缆将我的应用程序部署到我的三星 s4 手机上。奇怪的是,当我生成签名的apk并发布到play store时,我无法在手机上下载它......这没有意义,因为我在测试时能够使用它......我问我的朋友和他们经历了同样的事情。我查看了我的开发者控制台,它说我的应用程序与市场上的 LITERALLY 0 手机兼容......所以我查了一下,我想我的清单可能搞砸了,所以它就是这样(我正在使用 android studio btw ):

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

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

<uses-feature android:name="android.hardware.CAMERA"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:name="android.support.multidex.MultiDexApplication"
    >
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    <activity
        android:name="XXXX"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:screenOrientation="portrait"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:theme="@android:style/Theme.Translucent" />

    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:label="@string/app_name" />

    <provider android:authorities="com.facebook.app.FacebookContentProviderXXXX"
        android:name="com.facebook.FacebookContentProvider"
        android:exported="true" />
</application>

</manifest>

所以我在清单中没有看到任何问题(也许有人可以纠正我),如果有的话,我测试应用程序时它就不会在我的手机上运行。

所以我为我的应用程序使用了很多外部库,这里是列表:

1) facebook api 2) twitter api 3) snapdragon 4) google play 服务

我还不得不使用 multidex(正如您在清单中看到的那样),因为代码超过了 64k 行代码。下面是 build.gradle 的样子:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "xxxx"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 3
    versionName "1.2"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { java.srcDirs = ['src/main/java', 'libs'] } }
 }

 repositories {
     mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
 }

 dependencies {
    compile 'com.android.support:multidex:1.0.0'
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.facebook.android:facebook-android-sdk:4.+'
    compile('com.twitter.sdk.android:tweet-composer:1.0.2@aar') {
        transitive = true;
    }
 }

我对 gradle 完全陌生,所以我不确定它是否设置正确,所以可能是 gradle 本身或其他问题。有人对我能做什么有任何建议吗?

4

1 回答 1

1

我在清单中将相机功能更改为 required false 并且成功了。当我在开发者控制台中上传 apk 时,它说支持 8k+ 设备。清单也不正确,当您放置使用功能标签时,请确保相机全部小写而不是像我一样大写。

于 2016-01-29T15:17:43.783 回答