22

私はAndroid開発に不慣れです。EclipseとAndroidSDKを最新バージョンに更新した後、警告が表示されました。

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

このリンクでいくつかの情報を見つけました。

"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.)"

のようなサブパッケージ名に大文字を使用したと思いますcom.abc.app.Promotion

問題は、manifest.xmlでこの警告を取り除くための最良の方法は何ですか?それでもビルドして実行できますが、とても面倒です。

リファクタリングを使用してパッケージの名前を変更し、manifest.xmlを変更しようとしましたが、次のandroid:name="com.abc.app.promotion.Promotion"エラーが発生しました。

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?

助けてくれてありがとう!

編集:元のmanifest.xml

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

更新されたmanifest.xml

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

2 に答える 2

55

実際には内部クラスではないクラスに対してこの警告が表示される場合は、パッケージ名に大文字を使用しているためです。これは従来とは異なります。

パッケージ名の最初の文字だけを小文字に変更しようとしましたが、警告が消えました。

于 2015-10-07T07:02:23.700 に答える
2

パッケージ名には小文字を使用する必要があります

または、このatrrをアプリケーションタグに追加します

tools:ignore="InnerclassSeparator"

この警告を無視するには

于 2019-09-11T18:06:38.903 に答える