Итак, это происходит. Независимо от того, что я пытаюсь сделать с build.gradle, все APK выходят с флагом native_code = 'x86_64'
, поэтому, когда я развертываю приложение в магазине, в результате получается + 15 000 несовместимых устройств и только 19 совместимых. Сначала я подумал, что причиной почему-то была установка NDK или мой модифицированный скрипт сборки. Но это все еще происходит, когда я прохожу мастер создания подписанных APK. Блок splits
тоже изначально отсутствовал и не помог. Самое странное, что когда я устанавливаю через консоль, ЭТО РАБОТАЕТ!
Я также попытался переключиться на рекомендуемую JRE, а также на несколько стратегий именования APK, касающихся создания файлов, таких как перемещение вывода в разные каталоги или отказ от использования конструктора файлов.
Мой build.gradle
выглядит так:
defaultConfig {
applicationId "com.chiskosystems.brokr"
versionCode versionNumber
versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild}) Release"
minSdkVersion 16
targetSdkVersion 25
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
jackOptions {
enabled false
}
vectorDrawables {
useSupportLibrary true
}
}
splits {
abi {
enable true
reset()
include 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3]
applicationVariants.all { variant ->
variant.outputs.each { output ->
def fileNaming = "apk/brokr"
def outputFile = output.outputFile
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(
com.android.build.OutputFile.ABI), 0) * 10000000 + android.defaultConfig.versionCode
}
}
signingConfigs {
release {
try {
storeFile file('../mystore.jks')
keyAlias 'release'
storePassword KEYSTORE_PASSWORD
keyPassword KEY_PASSWORD
} catch (ex) {
throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
}
}
}
dataBinding {
enabled true
}
dexOptions {
javaMaxHeapSize "3g"
preDexLibraries false
}
buildTypes {
release {
minifyEnabled false
proguardFile 'path/proguard-project.pro'
...
buildConfigField "String", 'SERVER', '"https://myfirebaseserver.com"'
debuggable false
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
buildConfigField "String", 'SERVER', '"https://myfirebaseserver.com"'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
productFlavors {
sandbox {
buildConfigField "String", 'PAYPAL_ENV', '"PayPalConfiguration.ENVIRONMENT_NO_NETWORK"'
}
full {
buildConfigField "String", 'PAYPAL_ENV', '"PayPalConfiguration.ENVIRONMENT_PRODUCTION"'
signingConfig signingConfigs.release
targetSdkVersion 25
}
}
Происходит как в системах Win, так и в Unix. Я провел целый день безуспешно модифицируя сценарий, и на данный момент я беспомощен.
Любые идеи о том, что происходит бип? Большое спасибо!
applicationVariants.all { variant -> variant.outputs.each
, может ли это быть перезапись .apk только последней сборкой, которая в данном случае может быть x86_64. Помню когда-то у меня была похожая проблема. Что мне нужно было сделать, так это найти идентификатор и написать его только для конкретной сборки. - person just_user   schedule 04.04.2017variant.outputs
или со строкой. Не могли бы вы быть более конкретными? :) - person Chisko   schedule 05.04.2017gradle clean
? - person just_user   schedule 06.04.2017AndroidManifest.xml
. В прошлый раз, когда у меня было поддерживаемое приложение 0 в Google Play, это было вызвано опечаткой в android.hardware.camera
. - person JP Ventura   schedule 06.04.2017