Ich versuche, das android:versionName
in meinem Android-Manifest als Verweis auf die in der externen Ressourcendatei gespeicherte String-Ressource festzulegen.
Unten ist ein Auszug von meinem AndroidManifest.xml
:
und der Inhalt der Datei build.xml, die sich unter res/values
directory meines Projekts befindet:
Später versuche ich die Versionsnummer abzurufen, um sie auf dem Bildschirm Über meine Anwendung anzuzeigen.
%Vor%Problembeschreibung:
Wenn ich die Anwendung erstelle und sie automatisch auf meinem HTC-Gerät installiere, funktioniert alles einwandfrei. Der Versionsname wird als Referenz übergeben und auf dem Bildschirm About wird der Name des Versionsnamens im logcat angezeigt.
Aber wenn ich versuche, die Anwendung zu erstellen und sie auf dem Emulator zu starten, erhalte ich null
anstelle des Versionsnamens.
Ich habe bereits versucht, die App mit Eclipse und IDEA zu emulieren. Es scheint also, dass das Problem nicht mit der IDE zusammenhängt.
UPDATE:
Eine zusätzliche Sache ist aufgetaucht, die nicht mit einer solchen Verwendung von versionName
und versionCode
funktioniert. Die Anwendung kann nicht in Google Play bereitgestellt werden. Der folgende Fehler wird angezeigt:
Die Datei ist ungültig: ERROR erhält das Attribut 'android: versionCode': Attribut ist kein Ganzzahlwert
Ich denke, es gibt eine Mischung von Problemen mit diesem Ansatz / wie Sie ihn verwenden.
1.) Wenn Sie das APK kompilieren und auf den Android Market hochladen können und die korrekte Versionsnummer und der Name verwendet werden, können Sie Ressourcenreferenzen für den android: versionCode="@ integer / version_code" android: versionName verwenden="@ string / version_name"
Wenn das nicht möglich ist, sollten Sie keine Resten verwenden.
2.) Wenn Sie diesen Ansatz wählen, warum versuchen Sie dann, sie aus der paketinfo über getResources () zu holen. getString (R.string.version_name)?
Alles in allem sehe ich keinen großen Vorteil dieses Ansatzes, außer dass ich eine Ressourcendatei durch eine Baubox austauschen kann. In diesem Fall müssen Sie möglicherweise für den letzteren Ansatz Ihren About-Bildschirm ausfüllen.
Das sollte funktionieren. in Dimensionen.xml fügen Sie Folgendes hinzu:
%Vor%Fügen Sie in Ihrem Manifest Folgendes hinzu:
%Vor%Tags und Links android reference resources nullpointerexception version