清单必须有标签错误

时间:2012-03-04 12:34:07

标签: android

当我尝试在http://slideme.org上发布我的Android应用程序(适用于Android 2.1)时,我收到了一个错误,说Manifest必须有标签,但我有标签,我可以放置它们。

所以,如果有人能指出我的问题,请回复。

这是我的清单。

<manifest package="com.jandans.silencer"
  android:versionCode="1"
  android:versionName="1.0"  xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserLabel="@string/nosaukums">
<uses-sdk android:minSdkVersion="7"/>
<uses-permission  android:name="android.permission.ACCESS_SURFACE_FLINGER" />

<application  android:label="Silent Mode" android:icon="@android:drawable/ic_lock_silent_mode" 
   >

   <activity android:name=".Info"
            android:label="Silent mode">
            <intent-filter>
               <action android:name="android.intent.action.MAIN"/>
               <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    </activity>

    <receiver android:name=".widgetprow"
            android:label="Silent Mode"
            android:icon="@android:drawable/ic_lock_silent_mode">                            
            <intent-filter>
                <action
           android:name="android.appwidget.action.APPWIDGET_UPDATE" />  
            </intent-filter>
            <meta-data
                                     android:name="android.appwidget.provider"
                    android:resource="@xml/hey" />         
    </receiver>
    <service android:name=".widgetprow$ToggleService" android:label="Silent Mode"/>
</application>

2 个答案:

答案 0 :(得分:1)

似乎开始标记<application包含引用前缀为'@android:'的资源的属性android:icon。这打破了apk解析器,因此当您尝试上传应用时,您会收到“标签”错误。

您的<application开始标记如下所示:

<application  android:label="Silent Mode"
android:icon="@android:drawable/ic_lock_silent_mode">

应该通过将'@android:drawable:'中的引用前缀替换为“@drawable”来修复(见下文)

<application  android:label="Silent Mode" android:icon="@drawable/ic_lock_silent_mode"> 

希望这有帮助。

答案 1 :(得分:0)

可能与切向相关,但总的来说,它不赞成在应用程序,活动,服务等中使用android:label的文字字符串。但是,它可能会发出警告,因为他们宁愿你使用像@string这样的东西/ KEY “用于/res/values/SOMEFILE.xml下的资源,其中 SOMEFILE 是一个带有资源根标记的xml文件,并且有一个为 KEY 指定的字符串。通常,此实例中的 SOMEFILE 是strings.xml。

这是localization的主要原因,因此您可以通过简单地在/ res / values-fr目录中提供具有相同名称的文件来为法语用户提供不同的名称。