Die Einstellung von android: versionName als Verweis auf eine String-Ressource führt zu NullPointerException unter dem Emulator

8

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 :

%Vor%

und der Inhalt der Datei build.xml, die sich unter res/values directory meines Projekts befindet:

%Vor%

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

    
Vladimir Kosinets 15.03.2012, 15:33
quelle

3 Antworten

2

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.

    
Gaunt Face 20.03.2012 09:32
quelle
2

Sie können versionName in manifest als Verweis auf die Zeichenfolge ressource, aber nicht versionCode festlegen.

    
Konpon96 06.07.2013 21:44
quelle
0

Das sollte funktionieren. in Dimensionen.xml fügen Sie Folgendes hinzu:

%Vor%

Fügen Sie in Ihrem Manifest Folgendes hinzu:

%Vor%     
sirFunkenstine 09.05.2014 13:35
quelle