我最近上传了一个应用程序,我已经通过谷歌播放控制台在Google Play。出于某种原因,我真的不明白在所有的设备这是我第一次使用Google Play控制台,因为这款应用通过了Google的审核流程,我真的不明白为什么会发生这种情况。我找到了设备目录选项卡,但我没有在那里放置任何排除项。
在我通过Google Play控制台上传应用程序后,我已经将应用程序发送给了朋友和家人,大约20人左右,但他们都无法下载应用程序。同样的事情也发生在我的2台设备上。
这是旅客名单
<uses-feature
android:name="android.hardware.Camera"
android:required="true" />
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
</queries>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PITAFLPantryManager">
<activity
android:name=".ShoppingListActivity"
android:parentActivityName=".MainActivity" />
<activity android:name=".TextRecognitionActivity" />
<activity android:name=".BarcodeScannerActivity" />
<activity
android:name=".ProductsActivity"
android:parentActivityName=".MainActivity">
<meta-data android:name="android.app.default_searchable"
android:value=".SearchableActivity" />
</activity>
<activity
android:name=".SettingsActivity"
android:exported="false"
android:label="@string/title_activity_settings"
android:parentActivityName=".MainActivity"/>
<activity android:name=".AboutActivity"
android:parentActivityName=".MainActivity" />
<activity android:name=".SearchableActivity"
android:launchMode="singleTop"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.default_searchable"
android:value=".SearchableActivity" />
</activity>
<meta-data
android:name="com.google.mlkit.vision.DEPENDENCIES"
android:value="ocr" />
<!--service
android:name=".ProductsWatcherWorker"
android:permission="android.permission.BIND_JOB_SERVICE"></service-->
</application>
还有那个建筑师
plugins {
id 'com.android.application'
}
// Creates a variable called keystorePropertiesFile, and initializes it to the
// keystore.properties file.
def keystorePropertiesFile = rootProject.file('keystore.properties')
// Initializes a new Properties() object called keystoreProperties.
def keystoreProperties = new Properties()
// Loads the keystore.properties file into the keystoreProperties object.
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
signingConfigs {
debug {
keyAlias keystoreProperties['debugKeyAlias']
keyPassword keystoreProperties['debugKeyPassword']
storeFile file(keystoreProperties['debugStoreFile'])
storePassword keystoreProperties['debugStorePassword']
}
release {
keyAlias keystoreProperties['releaseKeyAlias']
keyPassword keystoreProperties['releaseKeyPassword']
storeFile file(file(keystoreProperties['releaseStoreFile']))
storePassword keystoreProperties['releaseStorePassword']
}
}
compileSdkVersion 32
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.timkom.pitafl"
minSdkVersion 27
targetSdkVersion 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
packagingOptions {
exclude 'AndroidManifest.xml'
exclude 'resources.arsc'
}
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debuggable false
jniDebuggable false
renderscriptDebuggable false
zipAlignEnabled false
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.debug
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
configurations {
compile.exclude group: 'com.google.android'
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
implementation 'androidx.fragment:fragment:1.3.6'
implementation 'com.github.bumptech.glide:glide:4.12.0'
implementation 'com.github.bigfishcat.android:svg-android:2.0.8'
implementation 'androidx.work:work-runtime:2.5.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'com.google.mlkit:barcode-scanning:17.0.2'
implementation "androidx.camera:camera-camera2:1.0.2"
implementation "androidx.camera:camera-lifecycle:1.0.2"
implementation "androidx.camera:camera-view:1.0.0-alpha23"
implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${applicationId}-${variant.name}-${variant.versionName}.apk"
}
}
2条答案
按热度按时间8aqjt8rx1#
虽然您发现了清单中有问题的部分,但问题并不是您所认为的那样-功能的名称与相机API的包名称无关。
https://developer.android.com/reference/android/hardware/Camera是旧的相机API,https://developer.android.com/reference/android/hardware/camera2/是新的相机API,但两者都与软件包管理器功能相关,如:
您的问题是FEATURE_CAMERA字符串是“android.hardware.camera“,* 而不是 *“android.hardware.Camera”。它区分大小写。
除非您只使用后置摄像头,否则您可能需要FEATURE_CAMERA_ANY,“android.hardware.camera.any”。
而且如果你的应用程序没有摄像头就没用的话,最好把功能按要求列出。否则,把它列为
android:required="false"
可能是最好的。mrphzbgm2#
我已经发现了这个问题。我从清单中删除了下面的行,因为我不使用旧的相机API。