Я пытаюсь установить android:versionName
в моем манифесте Android как ссылку на строковый ресурс, хранящийся во внешнем файле ресурса.
Ниже приведена выдержка из моего AndroidManifest.xml
:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.toycorporation"
android:versionCode="@integer/version_code"
android:versionName="@string/version_name"
>
и содержимого файла build.xml, расположенного в разделе res/values
моего проекта:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item type="string" name="build_date">03/15/2012</item>
<item type="integer" name="version_code">315281</item>
<item type="string" name="version_name">3.15.28.1</item>
</resources>
Позже я пытаюсь получить номер версии, чтобы отобразить его на экране «О программе» моего приложения.
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(),0);
Log.d("PackageInfo", "Version name: " + String.valueOf(packageInfo.versionName));
Описание проблемы:
Когда я создаю приложениеи автоматически установить его на моем устройстве HTC все отлично работает.Имя версии передается по ссылке, и на экране «О программе» я получаю значение имени версии, зарегистрированное в logcat.Но когда я пытаюсь собрать приложение и запустить его на эмуляторе, вместо значения имени версии я получаю null
.
Я уже пытался собрать и установить приложение в эмулятор, используя Eclipse и IDEA.Таким образом, похоже, что проблема не связана с IDE.
ОБНОВЛЕНИЕ:
Появилась еще одна вещь, которая не работает с таким использованием versionName
и versionCode
.Приложение не может быть развернуто в Google Play.Появляется следующая ошибка:
Файл недействителен: ОШИБКА при получении атрибута 'android: versionCode': атрибут не является целочисленным значением