Androidレイアウトファイル名がこれほど限定されているのはなぜですか?

StackOverflow https://stackoverflow.com/questions/3114381

  •  29-09-2019
  •  | 
  •  

質問

ファイル名が一貫しているのは良いことです。

myActivity.javaには、パブリッククラスのmyActivityが含まれています

レイアウトを備えたXMLファイルをres/layout/myactivity.xmlと呼びたい

しかし、「無効なファイル名:[A-Z0-9_。]のみを含める必要がある」というエラーメッセージが表示されます。

だから2つの質問:

  1. なぜキャラクターがそれほど制限されているのか(上品ではありませんか?来てください!) - ああ - この制限はおそらく整っているので、AppleのHFS+のように、上記と小文字を区別しないファイルシステムにねじ込まれることはありません(ただし、Gory StoryについてはWikipediaを参照してください http://en.wikipedia.org/wiki/comparison_of_file_systems#cite_note-note-35-77 )

  2. どのファイル名が制限されていますか?すべて解像度ですか? res/layoutだけですか? RES/レイアウトと他のいくつかのフォルダー?

誰かが1を確認し、2の詳細を提供できますか?

ありがとう、

ピーター

役に立ちましたか?

解決

なぜキャラクターがこれほど限られているのか

名前は有効なJava識別子である必要があるため、次のような定数を使用できます R.layout.foo 実行時にレイアウトを識別します。

どのファイル名が制限されていますか?すべて解像度ですか? res/layoutだけですか? RES/レイアウトと他のいくつかのフォルダー?

何でも res/

他のヒント

理由がわからない #1. 。リソースに関する読み物で説明を見たことはありません。にとって #2 私の経験から、Java EGのIDとして使用されるものは何でも R.drawable.marker, R.string.default_message の規則に従う必要があります [a-z0-9_].

MacOS Xを開発プラットフォームとして使用する場合、クロスプラットフォームコードを扱うほとんどの開発者は、遅かれ早かれ、Linux/UNIXプロジェクトのソースコードをダウンロード/チェックアウト/クローンの後に構築できないという問題に遭遇します。単一のディレクトリ内のファイルは、場合によってのみ異なります。また、OS Xでは、2番目のファイルが最初のファイルを上書きするため、1つのファイルだけになります。

もちろん、HFS+はケースに敏感ですが、これはパーティションをフォーマットした場合にのみ構成できます。デフォルトでは、すべてのMacには、ケースに依存しないHFS+を使用して事前にフォーマットされたパーティションにプリインストールされたOS Xが付属しています(HFS+のデフォルトモードです) 。そのため、最初に新しく購入したMacを再フォーマットし、OS Xを再インストールしてその目標を達成する必要があります。そして、多くのアプリがMACのケース感受性に依存しているため、トラブルに備えてください。非常に有名な例は蒸気です(ケースに敏感なHFS+から蒸気を実行することはできません)。

そして、それは単なるmacosではありません。脂肪は症例感受性があり、NTFはケースに敏感である可能性がありますが(HFS+と同様)、デフォルトではありません。また、SMBはプロトコル仕様(少なくとも古いバージョン)に従っていないと思います。 CDで使用されるファイルシステムはそうではありません。

ですから、最初からトラブルを直接避けるために、Googleはファイルをすべて小文字であることを強制することをお勧めします。その場合、使用しているファイルシステムや設定方法は関係ありません。もちろん、ソースコードファイルでその問題に遭遇することができれば、それは少し愚かですが、これらが混合ケースである可能性があることは、Androidよりも前であり、Googleがそのシステムを夢見ることさえ何年も前にSunによって行われた決定である可能性があります。 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top