2012-11-29 4 views
12

Ich bin neu in Android-Entwicklung. Nachdem ich meine Eclipse und Android SDK auf die neueste Version aktualisiert, bekam ich eine Warnung:

Use '$' instead of '.' for inner classes (or use only lowercase letters in package names) AndroidManifest.xml 

ich einige Informationen zu diesem link gefunden.

"When you reference an inner class in a manifest file, you must use '$' instead of '.' " + 
    "as the separator character, e.g. Outer$Inner instead of Outer.Inner.\n" + 
    "\n" + 
    "(If you get this warning for a class which is not actually an inner class, it's " + 
    "because you are using uppercase characters in your package name, which is not " + 
    "conventional.)" 

Ich glaube, dass ich wie com.abc.app.Promotion Großbuchstaben in Unterpaketnamen verwendet.

Die Frage ist: Was ist der beste Weg, um diese Warnung in der manifest.xml loswerden? Es kann immer noch bauen und laufen, aber ich finde es so nervig.

Ich versuchte refactor mit dem Paket und modifiziert, um die manifest.xml android:name="com.abc.app.promotion.Promotion" aber habe diesen Fehler zu benennen:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.abc.app/com.abc.app.TabView}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.abc.app/com.abc.app.promotion.Promotion}; have you declared this activity in your AndroidManifest.xml? 

Danke für die Hilfe!

EDIT: original manifest.xml

<activity android:name=".Promotion.Promotion" ></activity> 

aktualisiert manifest.xml

<activity android:name="promotion.Promotion" ></activity> 
+7

Verwendung Kleinbuchstaben nur für Paketnamen. – Alex

+0

Ja, ich verstehe. Ich habe diesen Fehler in der vorherigen Version des SDK ohne Warnung gemacht und möchte ihn jetzt ändern. Vielen Dank! – siutsin

+0

poste auch dein Manifest – njzk2

Antwort

32

Wenn Sie diese Warnung für eine Klasse zu bekommen, die nicht wirklich eine innere Klasse ist, ist es, weil Sie verwenden Großbuchstaben in Ihrem Paketnamen, die nicht konventionell ist.

Ich versuchte auch, nur den ersten Buchstaben des Paketnamens in Kleinbuchstaben zu ändern, die Warnung verschwand.

0

Das wahrscheinlichste Problem erschien, weil Großbuchstaben in Paketname verwenden, so ändern Sie Großbuchstaben in Kleinbuchstaben. wenn Warnung noch bleiben,

dann die Werkzeuge Namensraum importieren:

xmlns:tools="http://schemas.android.com/tools" 

Dann die Warnung auf dem spezifischen Element ignorieren:

tools:ignore="InnerclassSeparator" 
Verwandte Themen