为什么我的 Amazon Appstore 提交被拒绝?如何获取更多信息?
Why are my Amazon Appstore submissions being rejected? How to get more info?
一年多以来,我在亚马逊上发布了一款俄罗斯多人文字游戏。
现在我已经将它翻译成英语和德语,但是在通过 Amazon Appstore 审核获取 2 个翻译的应用程序时遇到问题 -
响应始终相同:“应用程序退出/强制关闭/冻结/启动后显示错误消息。”
但是没有关于他们测试的设备的信息(在我的 Fire 5 和 Fire 7 平板电脑上游戏运行得很好)并且没有错误日志。
我曾尝试联系开发人员支持部门询问任何日志,但没有得到任何回应。
我的应用程序使用 LWA 和 ADM,并且是 minSdk 16。我的应用程序也在 Google 商店(他们在那里使用 Google 登录和 FCM)和华为应用市场(他们使用 HMS)发布那里)。
我只需要更多信息来解决我的应用程序的任何问题。如果我知道哪个设备正在用于测试,我会购买或借用它。
是否有人愿意旁加载 the APK files 并在她或他的 Amazon Fire 设备上试用我的游戏?
最后,下面是我的 app/build.gradle
- 也许有人可以发现它的问题?
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
versionCode 168
targetSdkVersion 29
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
signingConfigs {
debug {
keyAlias 'AndroidDebugKey'
storeFile file('../../../../../.android/debug.keystore')
keyPassword 'android'
storePassword 'android'
}
release {
keyAlias 'AndroidReleaseKey'
storeFile file('../../../conf/release.keystore')
keyPassword System.getenv('PASSPHRASE1')
storePassword System.getenv('PASSPHRASE1')
}
}
flavorDimensions "store", "language"
productFlavors {
google {
dimension "store"
versionName "$defaultConfig.versionCode-google"
// min sdk version 16 needed for Firebase messaging
minSdkVersion 16
}
huawei {
dimension "store"
versionName "$defaultConfig.versionCode-huawei"
// min sdk version 17 needed for Huawei push
minSdkVersion 17
applicationIdSuffix ".huawei"
resConfigs "en", "zh-rCN", "ru", "de", "fr", "pl", "nl"
}
amazon {
dimension "store"
versionName "$defaultConfig.versionCode-amazon"
// min sdk version 15 needed for older Amazon Fire models, but is no more supported by the LWA
minSdkVersion 16
// ignore AdmService not extending android.app.Service
lintOptions {
checkReleaseBuilds false
}
}
de {
applicationId "de.wortefarbers"
dimension "language"
resConfigs "de"
}
en {
applicationId "com.wordsbyfarber"
dimension "language"
resConfigs "en"
}
ru {
applicationId "de.slova"
dimension "language"
resConfigs "ru"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
debuggable false
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
// minSdkVersion 9 is only supported by the OkHttp 3.12.x branch
implementation 'com.squareup.okhttp3:okhttp:3.12.2'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.neovisionaries:nv-websocket-client:2.10'
implementation "androidx.room:room-common:$roomVersion"
implementation "androidx.room:room-runtime:$roomVersion"
annotationProcessor "androidx.room:room-compiler:$roomVersion"
androidTestImplementation "androidx.room:room-testing:$roomVersion"
implementation "androidx.lifecycle:lifecycle-extensions:$archVersion"
annotationProcessor "androidx.lifecycle:lifecycle-common-java8:$archVersion"
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'com.google.android.material:material:1.3.0-alpha02'
implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
implementation 'com.mikepenz:materialdrawer:6.1.2'
implementation 'com.mikepenz:iconics-core:3.2.5'
implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'
implementation "com.facebook.android:facebook-core:$facebookVersion"
implementation "com.facebook.android:facebook-login:$facebookVersion"
googleImplementation 'com.google.android.gms:play-services-auth:18.1.0'
googleImplementation 'com.google.firebase:firebase-messaging:20.2.4'
googleImplementation 'com.android.billingclient:billing:3.0.0'
huaweiImplementation "com.huawei.hms:base:$hmsVersion"
huaweiImplementation "com.huawei.hms:hwid:$hmsVersion"
huaweiImplementation "com.huawei.hms:push:$hmsVersion"
huaweiImplementation "com.huawei.hms:iap:$hmsVersion"
amazonCompileOnly files('libs/amazon-device-messaging-1.1.0.jar')
amazonImplementation files('libs/login-with-amazon-sdk.jar')
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testImplementation 'junit:junit:4.12'
}
if (getGradle().getStartParameter().getTaskRequests().toString().contains('Google')) {
apply plugin: 'com.google.gms.google-services'
} else if (getGradle().getStartParameter().getTaskRequests().toString().contains('Huawei')) {
apply plugin: 'com.huawei.agconnect'
}
P.S。我也在 Amazon Developer Forum.
上问过我的问题
更新 经过一周的尝试:
在 App Testing Service 我注意到我的应用程序在使用 WebView 时很少崩溃(一些内部崩溃,不是由我的应用程序引起的),所以我删除了它的所有用法(使用嵌入式浏览器显示帮助、隐私政策、服务条款等)并删除了可选的 Facebook 登录。
现在我的英语和德语应用程序通过了“应用程序测试服务”:
但仍然被亚马逊评论者拒绝,我无法得到他们或任何日志的任何人工回复。
同时the Russian version of my app通过更新审核...
更新:
最后我收到了来自亚马逊的错误日志:
09-09 15:21:39.253: E/AndroidRuntime(19217): FATAL EXCEPTION: main
09-09 15:21:39.253: E/AndroidRuntime(19217): Process: de.wortefarbers, PID: 19217
09-09 15:21:39.253: E/AndroidRuntime(19217): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/amazon/device/messaging/development/ADMManifest;
09-09 15:21:39.253: E/AndroidRuntime(19217): at de.slova.SlovaApplication.c(SlovaApplication.java:1)
09-09 15:21:39.253: E/AndroidRuntime(19217): at de.slova.MainActivity.onCreate(MainActivity.java:3)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.Activity.performCreate(Activity.java:6672)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.-wrap12(ActivityThread.java)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.os.Handler.dispatchMessage(Handler.java:102)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.os.Looper.loop(Looper.java:154)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.main(ActivityThread.java:6123)
09-09 15:21:39.253: E/AndroidRuntime(19217): at java.lang.reflect.Method.invoke(Native Method)
09-09 15:21:39.253: E/AndroidRuntime(19217): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-09 15:21:39.253: E/AndroidRuntime(19217): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
09-09 15:21:39.253: E/AndroidRuntime(19217): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.amazon.device.messaging.development.ADMManifest" on path: DexPathList[[zip file "/data/app/de.wortefarbers-1/base.apk"],nativeLibraryDirectories=[/data/app/de.wortefarbers-1/lib/arm, /system/lib, /vendor/lib]]
09-09 15:21:39.253: E/AndroidRuntime(19217): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
09-09 15:21:39.253: E/AndroidRuntime(19217): at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
09-09 15:21:39.253: E/AndroidRuntime(19217): at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
09-09 15:21:39.253: E/AndroidRuntime(19217): ... 14 more
09-09 15:21:39.255: W/ActivityManager(1385): Force finishing activity de.wortefarbers/de.slova.MainActivity
但是我在 app/build.gradle 中确实有以下内容(并且两个 jar 文件确实存在):
amazonCompileOnly files('libs/amazon-device-messaging-1.1.0.jar')
amazonImplementation files('libs/login-with-amazon-sdk.jar')
我在 AndroidManifest.xml 中确实有 xmlns:amazon="http://schemas.amazon.com/apk/res/android"。下面列出了我的整个proguard-rules.pro:
-libraryjars libs/login-with-amazon-sdk.jar
-libraryjars libs/amazon-device-messaging-1.1.0.jar
-include okhttp3.pro
# -ignorewarning
-dontwarn org.conscrypt.**
-dontwarn com.amazon.device.messaging.**
-dontwarn com.huawei.**
-keep class com.amazon.device.messaging.** { *; }
-keep class androidx.multidex.** { *; }
-keep public class * extends com.amazon.device.messaging.ADMMessageReceiver
-keep public class * extends com.amazon.device.messaging.ADMMessageHandlerBase
-keep class android.support.v7.widget.SearchView { *; }
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keep class com.huawei.**{*;}
-keep class com.hianalytics.android.**{*;}
如果他们给了你一个错误日志,他们也应该给你一个失败的设备列表。
日志显示找不到 class com.amazon.device.messaging.development.ADMManifest
我假设您已按照以下说明设置 ADM:https://developer.amazon.com/docs/adm/set-up.html
您的 gradle 依赖项和混淆文件看起来与他们的示例不完全一样。比如你的不见了
-keep public class * extends com.amazon.device.messaging.ADMMessageHandlerJobBase
您可以尝试将其删除并重新设置,并尽可能以他们为榜样。祝你好运
对我来说,是 AdMob 应用程序打开实施导致了失败。我删除了实现,一切正常。
一年多以来,我在亚马逊上发布了一款俄罗斯多人文字游戏。
现在我已经将它翻译成英语和德语,但是在通过 Amazon Appstore 审核获取 2 个翻译的应用程序时遇到问题 -
响应始终相同:“应用程序退出/强制关闭/冻结/启动后显示错误消息。”
但是没有关于他们测试的设备的信息(在我的 Fire 5 和 Fire 7 平板电脑上游戏运行得很好)并且没有错误日志。
我曾尝试联系开发人员支持部门询问任何日志,但没有得到任何回应。
我的应用程序使用 LWA 和 ADM,并且是 minSdk 16。我的应用程序也在 Google 商店(他们在那里使用 Google 登录和 FCM)和华为应用市场(他们使用 HMS)发布那里)。
我只需要更多信息来解决我的应用程序的任何问题。如果我知道哪个设备正在用于测试,我会购买或借用它。
是否有人愿意旁加载 the APK files 并在她或他的 Amazon Fire 设备上试用我的游戏?
最后,下面是我的 app/build.gradle
- 也许有人可以发现它的问题?
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
versionCode 168
targetSdkVersion 29
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
signingConfigs {
debug {
keyAlias 'AndroidDebugKey'
storeFile file('../../../../../.android/debug.keystore')
keyPassword 'android'
storePassword 'android'
}
release {
keyAlias 'AndroidReleaseKey'
storeFile file('../../../conf/release.keystore')
keyPassword System.getenv('PASSPHRASE1')
storePassword System.getenv('PASSPHRASE1')
}
}
flavorDimensions "store", "language"
productFlavors {
google {
dimension "store"
versionName "$defaultConfig.versionCode-google"
// min sdk version 16 needed for Firebase messaging
minSdkVersion 16
}
huawei {
dimension "store"
versionName "$defaultConfig.versionCode-huawei"
// min sdk version 17 needed for Huawei push
minSdkVersion 17
applicationIdSuffix ".huawei"
resConfigs "en", "zh-rCN", "ru", "de", "fr", "pl", "nl"
}
amazon {
dimension "store"
versionName "$defaultConfig.versionCode-amazon"
// min sdk version 15 needed for older Amazon Fire models, but is no more supported by the LWA
minSdkVersion 16
// ignore AdmService not extending android.app.Service
lintOptions {
checkReleaseBuilds false
}
}
de {
applicationId "de.wortefarbers"
dimension "language"
resConfigs "de"
}
en {
applicationId "com.wordsbyfarber"
dimension "language"
resConfigs "en"
}
ru {
applicationId "de.slova"
dimension "language"
resConfigs "ru"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
debuggable false
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
// minSdkVersion 9 is only supported by the OkHttp 3.12.x branch
implementation 'com.squareup.okhttp3:okhttp:3.12.2'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.neovisionaries:nv-websocket-client:2.10'
implementation "androidx.room:room-common:$roomVersion"
implementation "androidx.room:room-runtime:$roomVersion"
annotationProcessor "androidx.room:room-compiler:$roomVersion"
androidTestImplementation "androidx.room:room-testing:$roomVersion"
implementation "androidx.lifecycle:lifecycle-extensions:$archVersion"
annotationProcessor "androidx.lifecycle:lifecycle-common-java8:$archVersion"
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'com.google.android.material:material:1.3.0-alpha02'
implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
implementation 'com.mikepenz:materialdrawer:6.1.2'
implementation 'com.mikepenz:iconics-core:3.2.5'
implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'
implementation "com.facebook.android:facebook-core:$facebookVersion"
implementation "com.facebook.android:facebook-login:$facebookVersion"
googleImplementation 'com.google.android.gms:play-services-auth:18.1.0'
googleImplementation 'com.google.firebase:firebase-messaging:20.2.4'
googleImplementation 'com.android.billingclient:billing:3.0.0'
huaweiImplementation "com.huawei.hms:base:$hmsVersion"
huaweiImplementation "com.huawei.hms:hwid:$hmsVersion"
huaweiImplementation "com.huawei.hms:push:$hmsVersion"
huaweiImplementation "com.huawei.hms:iap:$hmsVersion"
amazonCompileOnly files('libs/amazon-device-messaging-1.1.0.jar')
amazonImplementation files('libs/login-with-amazon-sdk.jar')
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testImplementation 'junit:junit:4.12'
}
if (getGradle().getStartParameter().getTaskRequests().toString().contains('Google')) {
apply plugin: 'com.google.gms.google-services'
} else if (getGradle().getStartParameter().getTaskRequests().toString().contains('Huawei')) {
apply plugin: 'com.huawei.agconnect'
}
P.S。我也在 Amazon Developer Forum.
上问过我的问题更新 经过一周的尝试:
在 App Testing Service 我注意到我的应用程序在使用 WebView 时很少崩溃(一些内部崩溃,不是由我的应用程序引起的),所以我删除了它的所有用法(使用嵌入式浏览器显示帮助、隐私政策、服务条款等)并删除了可选的 Facebook 登录。
现在我的英语和德语应用程序通过了“应用程序测试服务”:
但仍然被亚马逊评论者拒绝,我无法得到他们或任何日志的任何人工回复。
同时the Russian version of my app通过更新审核...
更新:
最后我收到了来自亚马逊的错误日志:
09-09 15:21:39.253: E/AndroidRuntime(19217): FATAL EXCEPTION: main
09-09 15:21:39.253: E/AndroidRuntime(19217): Process: de.wortefarbers, PID: 19217
09-09 15:21:39.253: E/AndroidRuntime(19217): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/amazon/device/messaging/development/ADMManifest;
09-09 15:21:39.253: E/AndroidRuntime(19217): at de.slova.SlovaApplication.c(SlovaApplication.java:1)
09-09 15:21:39.253: E/AndroidRuntime(19217): at de.slova.MainActivity.onCreate(MainActivity.java:3)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.Activity.performCreate(Activity.java:6672)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.-wrap12(ActivityThread.java)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.os.Handler.dispatchMessage(Handler.java:102)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.os.Looper.loop(Looper.java:154)
09-09 15:21:39.253: E/AndroidRuntime(19217): at android.app.ActivityThread.main(ActivityThread.java:6123)
09-09 15:21:39.253: E/AndroidRuntime(19217): at java.lang.reflect.Method.invoke(Native Method)
09-09 15:21:39.253: E/AndroidRuntime(19217): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-09 15:21:39.253: E/AndroidRuntime(19217): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
09-09 15:21:39.253: E/AndroidRuntime(19217): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.amazon.device.messaging.development.ADMManifest" on path: DexPathList[[zip file "/data/app/de.wortefarbers-1/base.apk"],nativeLibraryDirectories=[/data/app/de.wortefarbers-1/lib/arm, /system/lib, /vendor/lib]]
09-09 15:21:39.253: E/AndroidRuntime(19217): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
09-09 15:21:39.253: E/AndroidRuntime(19217): at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
09-09 15:21:39.253: E/AndroidRuntime(19217): at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
09-09 15:21:39.253: E/AndroidRuntime(19217): ... 14 more
09-09 15:21:39.255: W/ActivityManager(1385): Force finishing activity de.wortefarbers/de.slova.MainActivity
但是我在 app/build.gradle 中确实有以下内容(并且两个 jar 文件确实存在):
amazonCompileOnly files('libs/amazon-device-messaging-1.1.0.jar')
amazonImplementation files('libs/login-with-amazon-sdk.jar')
我在 AndroidManifest.xml 中确实有 xmlns:amazon="http://schemas.amazon.com/apk/res/android"。下面列出了我的整个proguard-rules.pro:
-libraryjars libs/login-with-amazon-sdk.jar
-libraryjars libs/amazon-device-messaging-1.1.0.jar
-include okhttp3.pro
# -ignorewarning
-dontwarn org.conscrypt.**
-dontwarn com.amazon.device.messaging.**
-dontwarn com.huawei.**
-keep class com.amazon.device.messaging.** { *; }
-keep class androidx.multidex.** { *; }
-keep public class * extends com.amazon.device.messaging.ADMMessageReceiver
-keep public class * extends com.amazon.device.messaging.ADMMessageHandlerBase
-keep class android.support.v7.widget.SearchView { *; }
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keep class com.huawei.**{*;}
-keep class com.hianalytics.android.**{*;}
如果他们给了你一个错误日志,他们也应该给你一个失败的设备列表。
日志显示找不到 class com.amazon.device.messaging.development.ADMManifest
我假设您已按照以下说明设置 ADM:https://developer.amazon.com/docs/adm/set-up.html
您的 gradle 依赖项和混淆文件看起来与他们的示例不完全一样。比如你的不见了
-keep public class * extends com.amazon.device.messaging.ADMMessageHandlerJobBase
您可以尝试将其删除并重新设置,并尽可能以他们为榜样。祝你好运
对我来说,是 AdMob 应用程序打开实施导致了失败。我删除了实现,一切正常。