android apk上传不起作用,因为名称无效

时间:2014-11-14 17:30:07

标签: android xamarin

我已签名并压缩我的Android应用程序,现在希望将其上传到Play商店。 但是,当我完成上传后,我收到以下消息:

上传失败 您的APK包名称必须采用以下格式“com.example.myapp”。它可能包含字母(a-z),数字和下划线(_)。它必须以小写字符开头。它必须是150个字符或更少。

我的apk名称是

dd.afm.aftermath.apk

所以我不明白为什么不遵守?

提前致谢

5 个答案:

答案 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>