Ошибка фермы устройств AWS: INSTALL_FAILED_OLDER_SDK, но у меня обратная совместимость
Поэтому я получаю следующую ошибку, когда устройства фермы устройств с Android 7.0 (и ниже) пытаются установить мое приложение:
Failed to install com.carto.advanced.kotlin.test -
INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI:
/data/app/vmdl777879102.tmp/base.apk (at Binary XML file line #5):
Requires newer sdk version #25 (current version is #24)
Хотя это технически правильно, я нацеливаюсь на SDK 25, у меня также установлена обратная совместимость, и это не должно быть проблемой.
compile 'com.android.support:appcompat-v7:25.2.0'
Вот соответствующий раздел моего build.gradle:
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.carto.advanced.kotlin"
minSdkVersion 18
targetSdkVersion 25
versionCode 4
versionName "0.3.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [HOCKEYAPP_APP_ID: "xxxx"]
}
Он устанавливает и работает на всех >=18 просто отлично, я тестировал его на нескольких устройствах. Что тут происходит?
Стоит отметить, что я использую эспрессо версии 2.2.2 и UIAutomator version-v18:2.0.0
compile 'com.android.support.test.uiautomator:uiautomator-v18:2.0.0'
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
Изображение со страницы ошибки:
2 ответа
Проблема не решена, но отвечаю на мой собственный вопрос, так как вопрос больше не актуален - он не связан с AWS Device Farm.
Проанализировав.apk теста, я обнаружил, что Android Studio совершает странную магию, когда переопределяет тесты. minSdkVersion
,
Из документации Android: при необходимости вы можете добавить свой собственный файл манифеста, например, указать другое значение для minSdkVersion
или зарегистрируйте прослушиватели run только для ваших тестов.
Поэтому я создал отдельный манифест для своего теста (и он его использует), но build.gradle
все еще переопределяет minSdkVersion
быть targetSdkVersion
,
Обновлю мой ответ, когда он будет решен.
Nikitah,
Не удалось установить com.carto.advanced.kotlin.test
Пакет, который не удается установить, заканчивается .test
что говорит мне о том, что это APK инструментария, а не само приложение APK, которое не удается установить.
Я думаю, что AndroidManifest.xml
в вашей аппаратуре APK имеет minSdkVersion
установить на 25 (или не установлен).
Вы можете подтвердить, используя aapt
, Например:
⇒ aapt debug badging <your-instrumentation.apk> | grep -i sdkversion
sdkVersion:'14'
targetSdkVersion:'24'
Надеюсь, это поможет!