Где AndroidStudio хранит значение VersionCode в .apk?

Я делаю проект с AndroidStudio, но даже после правильной настройки VersionCode в сценарии gradle теперь он не отображается в файле AndroidManifest.xml. Он хранится в другом файле внутри apk?

Точнее:

1) Я не могу найти «android: versionCode» в своем AndroidManifest.xml. Чтобы проверить AndroidManifest.xml, я беру .apk, использую apktool d, чтобы развернуть его в папку, а затем проверяю AndroidManifest.xml внутри этой папки.

2), но если я использую инструмент aapt, я получаю такой результат:

aapt l -a my.apk | grep "android:version"
A: android:versionCode(0x0101021b)=(type 0x10)0x4e

person DavidGuaita    schedule 27.10.2016    source источник
comment
в манифесте Android   -  person Blackbelt    schedule 27.10.2016
comment
versionCode и VersionName упоминаются в файле app-gradle.   -  person cpt. Sparrow    schedule 27.10.2016
comment
Я отредактировал вопрос, чтобы добавить больше информации.   -  person DavidGuaita    schedule 27.10.2016


Ответы (6)


вы можете найти versionCode и versionName в студии Android только в файле приложения gradle

person Vishal Sanghani    schedule 27.10.2016
comment
Извините, я имею в виду, где это в apk. - person DavidGuaita; 27.10.2016

Внутри файла Gradle scripts -->build.gradle(Module:app).

android {
....
versionCode xx

versionName "xxxx"....

}
person EKN    schedule 27.10.2016

теперь он не отображается в файле AndroidManifest.xml. ?

-- Да. Ваш градиент будет иметь приоритет над кодом версии манифеста, именем версии, идентификатором приложения (package_name) и другими вещами.

Он хранится в другом файле внутри apk?

-- Вы можете видеть все после установки приложения. (в качестве информации о приложении).

Gradle создаст для вас apk-файл со всеми вариантами.

person Sush    schedule 27.10.2016

но даже после правильной установки VersionCode в сценарии gradle теперь он не отображается в файле AndroidManifest.xml. Он хранится в другом файле внутри apk?

Нет, он всегда сохранялся в AndroidManifest.xml, как всегда. Вы смотрите не на тот файл. Вы должны проверить тот, который AS генерирует для вас через слияние манифеста. Вы можете найти его здесь (для отладки)

./app/build/intermediates/manifests/full/debug/AndroidManifest.xml
person Blackbelt    schedule 27.10.2016
comment
Я проверяю AndroidManifest.xml внутри сгенерированного .apk, и его там нет. - person DavidGuaita; 27.10.2016
comment
это там. Какой инструмент вы используете для извлечения манифеста из apk? - person Blackbelt; 27.10.2016
comment
Я использую apktool d myapkfile.apk - person DavidGuaita; 27.10.2016
comment
Затем я вхожу в сгенерированную папку myapkfile и открываю хранящийся там файл AndroidManifest.xml. - person DavidGuaita; 27.10.2016
comment
это может быть ошибка apktook. Посмотрите здесь - person Blackbelt; 27.10.2016
comment
Спасибо, вы указываете мне правильное направление. Дело в том, что apktool извлекает код версии, имя версии и другие параметры не в AndroidManifest.xml, а в другой файл с именем apktool.yml, расположенный в той же папке. Вот почему он не отображается в сгенерированном файле AndroidManifest.xml. - person DavidGuaita; 27.10.2016

Файл gradle не скомпилирован в APK, он предназначен только для фактического проекта студии Android для получения зависимостей. Невозможно получить файл gradle из APK

Если вы написали свой versionCode и versionName как в AppManifest.xml, так и в build.gradle, те, которые написаны в build.gradle, заменят те, что в вашем AppManifest.xml, когда вы скомпилируете свое приложение, и здесь наступает момент

Если вы не записали их в свой AppManifest.xml, когда вы скомпилируете свое приложение и создадите его, ваш versionCode и versionName, записанные в вашем build.gradle, будут автоматически записаны в ваш AppManifest.xml.

person Fesco    schedule 27.10.2016

Внутри приложения -> файл build.gradle вы найдете versionCode

android {
       compileSdkVersion 23
       buildToolsVersion "24.0.0"

 defaultConfig {
        applicationId "com.app.consumer"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
  }
}
person Nikhil PV    schedule 27.10.2016
comment
Спасибо, я имею в виду, где это можно найти в apk. Я отредактировал вопрос, пожалуйста, проверьте его еще раз. - person DavidGuaita; 27.10.2016