Не удалось обновить пакет приложений для 64-разрядной версии Google Play - PullRequest
0 голосов
/ 23 сентября 2019

Мы пытаемся обновить наше приложение, как обычно, но теперь Google заставляет приложения быть совместимыми с 32- и 64-битной архитектурой.Я пробовал разные решения, но для всех случаев я получил эту ошибку ниже на снимке экрана.enter image description here

Вот мое последнее решение

defaultConfig {
    ...
    ndk {
        abiFilters  "armeabi-v7a", "arm64-v8a"
    }
}

def enableSeparateBuildPerCPUArchitecture = false
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false
        include  "armeabi-v7a", "arm64-v8a"
    }
}

Я также попробовал это ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Set:

universalApk true

, чтобы обе архитектуры были включены в универсальный APK (не в App Bundle).Включение x86 и / или x86_64 просто полезно для отладочных сборок (эмулятор), но оно разбухает в сборках выпуска с бесполезной нативной сборкой.


Но для App Bundle вместо этого смотрите конфигурация базового модуля :

Блок разбиения игнорируется :

При сборке пакета приложения Gradle игнорирует свойства в блоке android.splits,Если вы хотите контролировать, какие типы APK-конфигураций поддерживает ваш пакет приложений, вместо этого используйте android.bundle, чтобы отключить типы APK-конфигураций.

По умолчанию он разбивается на abi, но также требует оба *.so:

android {

    // When building Android App Bundles, the splits block is ignored.
    splits {...}

    // Instead, use the bundle block to control which types of configuration APKs
    // you want your app bundle to support.
    bundle {
        language {
            // Specifies that the app bundle should not support
            // configuration APKs for language resources. These
            // resources are instead packaged with each base and
            // dynamic feature APK.
            enableSplit = false
        }
        density {
            // This property is set to true by default.
            enableSplit = true
        }
        abi {
            // This property is set to true by default.
            enableSplit = true
        }
    }
}

ndk сборка также устарела, используйте cmake ... и убедитесь, что arm64-v8a *.so даже построены (можно настроитьмного, но это не заботится о пропавших библиотеках, пока не может связать их).Загрузка библиотек из armeabi не воспринимается как «поддержка 64-битных систем» (это уже пробовали).

0 голосов
/ 23 сентября 2019
defaultConfig {
    ...

    ndk {
        abiFilters "arm64-v8a", "armeabi-v7a"
    }

}

bundle {
        density {
            // Different APKs are generated for devices with different screen densities; true by default.
            enableSplit true
        }
        abi {
            // Different APKs are generated for devices with different CPU architectures; true by default.
            enableSplit true
        }
        language {
            // This is disabled so that the App Bundle does NOT split the APK for each language.
            // We're gonna use the same APK for all languages.
            enableSplit false
        }
    }
...