我已签名并压缩我的Android应用程序,现在希望将其上传到Play商店。 但是,当我完成上传后,我收到以下消息:
上传失败 您的APK包名称必须采用以下格式“com.example.myapp”。它可能包含字母(a-z),数字和下划线(_)。它必须以小写字符开头。它必须是150个字符或更少。
我的apk名称是
dd.afm.aftermath.apk
所以我不明白为什么不遵守?
提前致谢
答案 0 :(得分:6)
将AdnroidManifest.xml文件的包值从“AndroClient.AndroClient”更改为“com.example.myapp”(或其他)。
然后Xamarin将在编译时使用它。
答案 1 :(得分:3)
错误消息会抱怨“包名称”,而不是APK文件名。
您的包名称设置为'AndroClient.AndroClient',它与com.example.app的指定模式不匹配。将您的包名更改为com.dualdub.androclient
。
<强>背景强>
包名称和版本代码标识应用程序。增加版本代码,同时保持相同的包名称,人们将自动更新到新版本。更改包名称,Google Play商店将其视为另一个应用。
您可能知道,现在有数百万个已发布的应用。为了防止包名称冲突,规定的方法是在您的应用程序名称前面反对您的网站域名。在您的个人资料中,它表示http://dualdub.com是您的网站。因此,您应该在应用程序名称前加上“com.dualdub。”。包名称区分大小写;通常的做法是使用全部小写。
Google Play商店会从'manifest'元素中的AndroidManifest.xml中读取您的包名称; 'package'属性。如何更改这取决于您的IDE。
使用Android Studio更改软件包名称
当您使用Android Studio时,您也使用Gradle构建系统。 Gradle构建系统会覆盖清单中的包名称。在构建期间,它将applicationId
放在清单包属性中。
在app模块中打开build.gradle文件。它应位于:<projectDir>/app/build.gradle
。看起来应该是这样的:
应用/的build.gradle 强>
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
applicationId "com.example.appname"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
将applicationId更新为com.dualdub.androclient
。
使用Eclipse更改包名称
说实话,我从未使用过Eclipse,所以我必须给你模糊的指示。
在AndroidManifest.xml中,您拥有manifest包属性。它起着双重作用:1)它指定包名称(也称为applicationId),2)它有助于缩短您使用其他元素指定的类名,例如:在指定活动时,您可以编写android:name=".MainActivity"
而不是android:name="com.example.appname.MainActivity"
。
要更改包名称,您实际上必须更改代码的命名空间。在.java文件中,从'package AndroClient.AanroClient;'更改第一行。到package com.dualdub.androclient;
。
最有可能的是,Eclipse将有一个重构工具来重命名java包,以使您更容易。
答案 2 :(得分:1)
正如错误所说:
必须以小写字母
开头
虽然您的包名是: AndroClient.AndroClient ,它以大写字母开头。
引用文件:
包名称是应用程序的包命名空间(遵循与Java编程语言中的包相同的规则)。您的软件包名称在Android系统上安装的所有软件包中必须是唯一的。因此,如果您使用以组织或发布商实体的反向域名开头的名称,通常情况下最佳。对于这个项目,你可以使用类似&#34; com.example.myfirstapp。&#34;但是,您无法使用&#34; com.example&#34;在Google Play上发布您的应用。命名空间。
我建议只遵守&#34;反向域&#34;经验法则
答案 3 :(得分:0)
你的包装问题.. 更改您的包名称作为删除示例.. 例如:
com.developer.name
答案 4 :(得分:0)
java源代码的第一行可能包含包名。
package com.gosylvester.hilbilyfashliegt;
包名称也在清单中。 应用程序名称或您调用应用程序的内容在android:label
的清单中设置<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gosylvester.hilbilyfashliegt"
android:versionCode="7"
android:versionName="Juger" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.gosylvester.hilbilyfashliegt.MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
通常,您将应用程序名称存储在res / values / strings.xml下面app_name是应用程序名称。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hil Bily FashLiegt</string>
<string name="action_settings">Make stays</string>
<string name="author" translatable="false">by cousin Dan</string>
<string name="new_this_version">""New this one. Stil Kant make wir catch stay on good. Toch screen to mak er on. Use make stays for duk tap wird"</string>
<string name="aboutcheckbox">Reckon not show this here agin</string>
<string name="shareText">I reckon this here hillbile fashliegt app is worth a jar of moonshine. https://play.google.com/store/apps/details?id=com.gosylvester.hilbilyfashliegt</string>
<string name="sharesubject">Android add free flashLight App by Dan Sylvester</string>
<string name="about_firstrun">com.gosylvester.hilbilyfashliegt.firstrunabout</string>
<string name="preferences">com.gosylvester.hilbilyfashliegt.prefrences</string>
</resources>