8

ファイル名に一貫性を持たせるのは良いことです。

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

レイアウトを含むxmlファイルをres/layout/MyActivity.xmlと呼びたい

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

したがって、2つの質問:

  1. なぜ文字セットがそれほど制限されているのですか(大文字でもありませんか?さあ!)-ああ-この制限はおそらく適用されているので、AppleのHFS+のように大文字と小文字を区別しないファイルシステムに惑わされることはありません(ただし、残酷な話についてはWikipediaを参照してくださいhttp://en.wikipedia.org/wiki/Comparison_of_file_systems#cite_note-note-35-77

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

誰かが1を確認し、2の詳細を教えてもらえますか?

ありがとう、

ピーター

4

3 に答える 3

11

文字セットが制限されているのはなぜですか

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

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

で何でもres/

于 2010-06-24T22:49:56.833 に答える
2

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

于 2010-06-24T22:42:36.613 に答える
0

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

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

そしてそれはMacOSだけではありません。FATは大文字と小文字を区別せず、NTFSは大文字と小文字を区別できますが(HFS +と同様)、デフォルトではありません。また、SMBはプロトコル仕様(少なくとも古いバージョン)に準拠していないと思います。CDで使用されるファイルシステムはそうではありません。

したがって、最初から問題を回避するために、Googleは、ファイルをすべて小文字にすることをお勧めします。この場合、使用しているファイルシステムや構成方法は関係ありません。もちろん、ソースコードファイルでその問題が発生する可能性がある場合は少しばかげていますが、これらが混在する可能性があるのは、Androidよりも前の決定であり、Googleがそのシステムを夢見る何年も前にSunによって行われたものです。 。

于 2015-02-19T00:10:59.440 に答える