aapt FEHLER Erhalten von 'android: name' Attribut: Attribut ist kein Zeichenfolgenwert

8

Wenn meine apk generiert wird, führe ich den Befehl aapt dump badging darauf aus. Ich erhalte weiterhin den folgenden Fehler:

  

Anwendung: label = 'Name' icon = 'res / drawable / icon_128x128.png'   
application-debugable absetzbare Aktivität:   name = 'co.package.name.MainActivity' label = 'Name' icon = '' FEHLER   getting 'android: name' Attribut: Attribut ist kein Zeichenfolgenwert

Ich habe versucht, einen Label-Namen für alle Aktivitäten hinzuzufügen und alle anderen Werte-xxx-Ordner unter / res aber vergebens zu entfernen. Wenn ich jedoch ein ganz neues Projekt erstelle und ein neues APK erzeuge, kann das APK erfolgreich mit dem Befehl aapt dump badging ausgeführt werden.

Ich habe die gedruckte Nachricht von beiden APK verglichen und einen Hauptunterschied gefunden:

Erfolgsbotschaft apk:

  

Anwendungs-Label: 'AppLabel'
  application-icon-160: 'res / drawable-xhdpi / icon_128x128.png'
  application-icon-240: 'res / drawbare-xhdpi / icon_128x128.png'
  application-icon-320: 'res / drawbare-xhdpi / icon_128x128.png'
  Anwendung: Label = 'AppLabel'   Symbol = 'res / drawable-xhdpi / icon_128x128.png'
  Anwendung-debuggable
absetzbare Aktivität:   name = 'com.demo.testApp.MainActivity' label = '' icon = '

Nachricht der fehlgeschlagenen apk:

  

Anwendungs-Label: 'MyApp'
Anwendungs-Label-ja: 'MyApp'
  application-label-de: 'MyApp'
application-label-he: 'MyApp'
  application-label-zh: 'MyApp'
Anwendungskennung-fi: 'MyApp'
  application-label-nl: 'MyApp'
  ..
.. (alle Sprachen werden angehängt, und schließlich tritt der Fehler auf)
..
  application: label = 'MyApp' icon = 'res / zeichnendes / icon_128x128.png'
application-debuggable
launchable-activity:   name = 'com.name.myapp.MainActivity' label = 'MyApp' icon = ''
FEHLER   getting 'android: name' Attribut: Attribut ist kein Zeichenfolgenwert


----- Bearbeiten ------
Ich habe festgestellt, dass das Thema "Sprache" nicht relevant ist. Ich habe meine Manifest-Datei geändert und stelle sicher, dass kein "application-label-XX" ausgedruckt wird, und der Fehler ist immer noch derselbe.

Unten ist meine Manifest-Datei

%Vor%

Vielleicht gibt es ein falsches Format oder Tippfehler in meiner Manifest-Datei?

------ Bearbeiten ----
Ich denke auch, dass es vielleicht ein Problem der Entschlüsselung ist. In meiner Umgebung benutze ich utf-8. Vielleicht stimmt etwas nicht mit dem Build-Prozess der Umwandlung von XML in Binärdatei?

Wenn oben etwas Unannehmbares verdächtigt wird, entschuldige ich mich aufrichtig. Ich habe drei Tage an diesem Thema festgehalten und kann wirklich keinen Fortschritt erreichen. Habe viele Dinge probiert und der Fehler ist immer derselbe. Jeder Vorschlag oder Kommentar würde wirklich geschätzt werden.

    
KunYu Tsai 09.06.2013, 09:45
quelle

7 Antworten

11
  

Meinst du, dies könnte auch durch ein kaputtes Werkzeug verursacht werden?

Sicher. Die Android-Tools hatten in der Vergangenheit viele Fehler, und es gibt keinen Grund anzunehmen, dass aapt dump badging irgendwie perfekt ist. Ihr Problem wurde bereits als Fehler gemeldet . Also, es sei denn, Sie sehen auch ein Problem bei der Ausführung Ihrer App, das hier möglicherweise eine Rolle spielt. Ich nehme an, dass aapt dump badging das Element mit dem Problem ist, nicht unbedingt deine App.

Wenn Sie die R22-Tools noch nicht aktualisiert haben, können Sie dies tun, um zu sehen, ob dieser Fehler behoben wurde und sie das Problem nicht einfach geschlossen haben. Wenn Sie sich in den R22-Tools befinden, können Sie einen Kommentar zu diesem Problem hinzufügen, dies aufzeigen und einen Link zu dieser SO-Frage einfügen, sodass das Tools-Team einen anderen Datenpunkt in Bezug auf das Problem hat.

    
CommonsWare 09.06.2013, 12:34
quelle
7

Die gleiche Geschichte hier. Ich habe diese Nachricht erhalten, als ich eine funktionierende APK in Google Play hochgeladen habe. Ich konnte es mit dem Befehl aapt reproduzieren (in ... \ android-sdk \ platform-tools). Es stellte sich heraus, dass es sich um eine String-Ressource im Namen eines Intent-Filters handelte, und wurde durch hartes Codieren behoben.

Es hätte eine lange Zeit gedauert, das ohne diese Antwort zu debuggen:)

    
Stephen Hosking 09.08.2013 05:00
quelle
4
___ qstnhdr ___ aapt FEHLER Erhalten von 'android: name' Attribut: Attribut ist kein Zeichenfolgenwert ___ answer17009646 ___
  

Meinst du, dies könnte auch durch ein kaputtes Werkzeug verursacht werden?

Sicher. Die Android-Tools hatten in der Vergangenheit viele Fehler, und es gibt keinen Grund anzunehmen, dass %code% irgendwie perfekt ist. Ihr Problem wurde bereits als Fehler gemeldet . Also, es sei denn, Sie sehen auch ein Problem bei der Ausführung Ihrer App, das hier möglicherweise eine Rolle spielt. Ich nehme an, dass %code% das Element mit dem Problem ist, nicht unbedingt deine App.

Wenn Sie die R22-Tools noch nicht aktualisiert haben, können Sie dies tun, um zu sehen, ob dieser Fehler behoben wurde und sie das Problem nicht einfach geschlossen haben. Wenn Sie sich in den R22-Tools befinden, können Sie einen Kommentar zu diesem Problem hinzufügen, dies aufzeigen und einen Link zu dieser SO-Frage einfügen, sodass das Tools-Team einen anderen Datenpunkt in Bezug auf das Problem hat.

    
___ answer22676582 ___

Prüfe den Aktionsnamen

%Vor%

ändern zu

%Vor%     
___ answer36233215 ___

Ich habe das gleiche Problem und habe es gelöst, indem ich @string aus manifex.xml entferne.

Original (Fehler):

string.xml

%Vor%

Manifex.xml

%Vor%

Oben wäre die Arbeit gut wie erwartet. Aber wenn ich Apk auf Google Play hochlade, wird das %code%

verursachen

Das Problem wurde wie folgt gelöst:

Korrigiert:

Manifex.xml

%Vor%

Sie müssen nur den @string auf die exakte Zeichenfolge aktualisieren. Hoffe das würde dir helfen!

    
___ answer39081020 ___

Im Grunde, wie die Fehlermeldung suggeriert, gehen Sie einfach durch jede Zeile Ihrer Manifest-Datei und stellen Sie sicher, dass jeder "android: name" einen korrekt verknüpften "string value" hat.

Besser noch immer die Eingabe der Zeichenfolge für jedes "android: name" -Attribut in der Manifest-Datei, um das Problem zu beheben.

    
___ answer31176518 ___

Ich hatte gerade das gleiche Problem. Es wurde durch eine Zeichenfolge verursacht, die nicht gefunden werden konnte.

android: label="@ string / app_name_launcher"

Diese Zeichenfolge im Ordner values ​​/ strings.xml existiert einfach nicht.

Lustig ist, ich könnte die .apk-Datei trotzdem erstellen.

    
___ answer18140276 ___

Die gleiche Geschichte hier. Ich habe diese Nachricht erhalten, als ich eine funktionierende APK in Google Play hochgeladen habe. Ich konnte es mit dem Befehl aapt reproduzieren (in ... \ android-sdk \ platform-tools). Es stellte sich heraus, dass es sich um eine String-Ressource im Namen eines Intent-Filters handelte, und wurde durch hartes Codieren behoben.

Es hätte eine lange Zeit gedauert, das ohne diese Antwort zu debuggen:)

    
___ tag123apk ___ Eine .apk-Dateiendung bezeichnet eine Android-Paketdatei (APK). Dieses Dateiformat, eine Variante des JAR-Formats, wird zum Verteilen und Installieren von gebündelten Komponenten auf das Android-Betriebssystem verwendet. ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ tag123aapt ___ Android Asset Packaging Tool ist der Ressourcencompiler für Android-Apps. ___ qstntxt ___

Wenn meine apk generiert wird, führe ich den Befehl %code% darauf aus. Ich erhalte weiterhin den folgenden Fehler:

  

Anwendung: label = 'Name' icon = 'res / drawable / icon_128x128.png'   
application-debugable absetzbare Aktivität:   name = 'co.package.name.MainActivity' label = 'Name' icon = '' FEHLER   getting 'android: name' Attribut: Attribut ist kein Zeichenfolgenwert

Ich habe versucht, einen Label-Namen für alle Aktivitäten hinzuzufügen und alle anderen Werte-xxx-Ordner unter / res aber vergebens zu entfernen. Wenn ich jedoch ein ganz neues Projekt erstelle und ein neues APK erzeuge, kann das APK erfolgreich mit dem Befehl %code% ausgeführt werden.

Ich habe die gedruckte Nachricht von beiden APK verglichen und einen Hauptunterschied gefunden:

Erfolgsbotschaft apk:

  

Anwendungs-Label: 'AppLabel'
  application-icon-160: 'res / drawable-xhdpi / icon_128x128.png'
  application-icon-240: 'res / drawbare-xhdpi / icon_128x128.png'
  application-icon-320: 'res / drawbare-xhdpi / icon_128x128.png'
  Anwendung: Label = 'AppLabel'   Symbol = 'res / drawable-xhdpi / icon_128x128.png'
  Anwendung-debuggable
absetzbare Aktivität:   name = 'com.demo.testApp.MainActivity' label = '' icon = '

Nachricht der fehlgeschlagenen apk:

  

Anwendungs-Label: 'MyApp'
Anwendungs-Label-ja: 'MyApp'
  application-label-de: 'MyApp'
application-label-he: 'MyApp'
  application-label-zh: 'MyApp'
Anwendungskennung-fi: 'MyApp'
  application-label-nl: 'MyApp'
  ..
.. (alle Sprachen werden angehängt, und schließlich tritt der Fehler auf)
..
  application: label = 'MyApp' icon = 'res / zeichnendes / icon_128x128.png'
application-debuggable
launchable-activity:   name = 'com.name.myapp.MainActivity' label = 'MyApp' icon = ''
FEHLER   getting 'android: name' Attribut: Attribut ist kein Zeichenfolgenwert


----- Bearbeiten ------
Ich habe festgestellt, dass das Thema "Sprache" nicht relevant ist. Ich habe meine Manifest-Datei geändert und stelle sicher, dass kein "application-label-XX" ausgedruckt wird, und der Fehler ist immer noch derselbe.

Unten ist meine Manifest-Datei

%Vor%

Vielleicht gibt es ein falsches Format oder Tippfehler in meiner Manifest-Datei?

------ Bearbeiten ----
Ich denke auch, dass es vielleicht ein Problem der Entschlüsselung ist. In meiner Umgebung benutze ich utf-8. Vielleicht stimmt etwas nicht mit dem Build-Prozess der Umwandlung von XML in Binärdatei?

Wenn oben etwas Unannehmbares verdächtigt wird, entschuldige ich mich aufrichtig. Ich habe drei Tage an diesem Thema festgehalten und kann wirklich keinen Fortschritt erreichen. Habe viele Dinge probiert und der Fehler ist immer derselbe. Jeder Vorschlag oder Kommentar würde wirklich geschätzt werden.

    
___
Blake Buckley 14.02.2015 18:25
quelle
2

Prüfe den Aktionsnamen

%Vor%

ändern zu

%Vor%     
susemi99 27.03.2014 01:30
quelle
2

Ich habe das gleiche Problem und habe es gelöst, indem ich @string aus manifex.xml entferne.

Original (Fehler):

string.xml

%Vor%

Manifex.xml

%Vor%

Oben wäre die Arbeit gut wie erwartet. Aber wenn ich Apk auf Google Play hochlade, wird das aapt ERROR getting 'android:name' attribute: attribute is not a string value

verursachen

Das Problem wurde wie folgt gelöst:

Korrigiert:

Manifex.xml

%Vor%

Sie müssen nur den @string auf die exakte Zeichenfolge aktualisieren. Hoffe das würde dir helfen!

    
Ted Yu 26.03.2016 08:31
quelle
0

Ich hatte gerade das gleiche Problem. Es wurde durch eine Zeichenfolge verursacht, die nicht gefunden werden konnte.

android: label="@ string / app_name_launcher"

Diese Zeichenfolge im Ordner values ​​/ strings.xml existiert einfach nicht.

Lustig ist, ich könnte die .apk-Datei trotzdem erstellen.

    
Tower Jimmy 02.07.2015 05:52
quelle
0

Im Grunde, wie die Fehlermeldung suggeriert, gehen Sie einfach durch jede Zeile Ihrer Manifest-Datei und stellen Sie sicher, dass jeder "android: name" einen korrekt verknüpften "string value" hat.

Besser noch immer die Eingabe der Zeichenfolge für jedes "android: name" -Attribut in der Manifest-Datei, um das Problem zu beheben.

    
S bruce 22.08.2016 13:34
quelle

Tags und Links