Android app?のパッケージ名はどうあるべきかを知りたいのですが、通常はcom.appname OR com.organizationName.appNameを使用しましたが、市場に申請書を提出すると、パッケージ名に関連するエラーが表示されることがあります。パッケージ名を変更してください。comなどで開始しないでください。
これがなぜ起こるのか知りたいのですが?そして、Android application?
誰かがこの質問の理由や答えを知っているなら、私に知らせてください。
前もって感謝します。
ここで述べたように、パッケージ名はすべて小文字で書かれており、クラスまたはインターフェースの名前との競合を避けています。
企業は逆インターネットドメイン名を使用してパッケージ名を開始します。たとえば、com.example.mypackage for a package named mypackage created by a programmer at example.com
。
単一の会社内で発生する名前の衝突は、会社内の慣例により、おそらく会社名の後に地域またはプロジェクト名を含めることによって処理する必要があります(たとえば、com.example.region.mypackage)。
Java言語自体のパッケージは、Javaまたはjavaxで始まります。
場合によっては、インターネットドメイン名が有効なパッケージ名ではない可能性があります。これは、ドメイン名にハイフンまたはその他の特殊文字が含まれている場合、パッケージ名が数字またはJava nameの先頭として使用するのが不正な文字で始まる場合、またはパッケージ名に予約済みJavaキーワードが含まれています。この場合、アンダースコアを追加することをお勧めします。例:
Androidは、Javaのような同じ命名規則に従い、
命名規則
パッケージ名は、クラスまたはインターフェースの名前との競合を避けるため、すべて小文字で記述されています。
企業は、逆インターネットドメイン名を使用してパッケージ名を開始します。たとえば、example.comのプログラマーが作成したmypackageという名前のパッケージのcom.example.mypackageなどです。
単一の会社内で発生する名前の衝突は、会社内の慣例により、おそらく会社名の後に地域またはプロジェクト名を含めることによって処理する必要があります(たとえば、com.example.region.mypackage)。
Java言語自体のパッケージはJava。またはjavax。で始まります。
場合によっては、インターネットドメイン名が有効なパッケージ名ではない可能性があります。これは、ドメイン名にハイフンまたはその他の特殊文字が含まれている場合、パッケージ名が数字またはJava nameの先頭として使用するのが不正な文字で始まる場合、またはパッケージ名に予約済みJavaキーワードが含まれています。この場合、アンダースコアを追加することをお勧めします。例:
パッケージ名の合法化:
Domain Name Package Name Prefix
hyphenated-name.example.org org.example.hyphenated_name
example.int int_.example
123name.example.com com.example._123name
あなたが述べたように、パッケージ名は通常 'com.organizationName.appName'の形式です-すべて小文字でスペースなし。アプリのアップロード時に入力したパッケージ名は、AndroidManifestで宣言されたパッケージ名とは異なるようです。
現在、「com.example」で始まるパッケージ名はアプリストアでアップロードできません。それ以外の場合、「com」で始まる他のすべてのパッケージ名が許可されます。
パッケージ名が0の場合、sharedPreferenceに問題が発生する可能性があります。
(OK)con = createPackageContext("com.example.Android.sf1", 0);
(問題だがエラーなし)
con = createPackageContext("com.example.Android.sf01", 0);
https://developers.google.com/mobile/add にアクセスして、「Android package name」を入力してみてください。場合によっては、「Invalid Android package name」というエラーを書き込むことができます。
https://developer.Android.com/studio/build/application-id.html に書かれています:
また、アプリケーションIDは従来のJavaパッケージ名のように見えますが、アプリケーションIDの命名規則はもう少し制限されています。
- 少なくとも2つのセグメント(1つ以上のドット)が必要です。
- 各セグメントは文字で始まる必要があります。
- すべての文字は、英数字またはアンダースコア[a-zA-Z0-9_]でなければなりません。
したがって、「0com.example.app」と「com.1example.app」はエラーです。