当我尝试在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>
答案 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目录中提供具有相同名称的文件来为法语用户提供不同的名称。