具有特定权限的Monodroid失败[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

时间:2013-09-30 03:28:10

标签: xamarin.android android-manifest xamarin android-permissions supportmapfragment

最近我尝试将Map Fragment添加到我用Xamarin + MvvmCross编写的Monodroid应用程序中。 当我根据其中一个映射指南Google Maps in Monodroid Apps修改清单时:

 <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" android:versionName="1.3.0.0" android:versionCode="1" package="MonoDroid.drdApp">
      <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
      <uses-feature android:glEsVersion="0x00020000" android:required="true" />
      <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="MonoDroid.drdApp.permission.MAPS_RECEIVE" />
      <permission android:name="MonoDroid.drdApp.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
      <application android:label="Droid App" android:icon="@drawable/icon">
        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="my_valid_key_goes_here" />
      </application>
</manifest>

我收到以下错误(运行时错误):

Deployment failed because of an internal error: Unexpected install output:  pkg: /data/local/tmp/MonoDroid.drdApp-Signed.apk
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

我发现生成错误的清单行是:

<permission android:name="MonoDroid.drdApp.permission.MAPS_RECEIVE" android:protectionLevel="signature" />

但我发现几乎所有与Android版Google地图相关的指南都提到了这一行。

我不确定这条线是做什么的,并且不确定app是否可以在没有它的情况下工作(目前它没有,并且这条线是其中一个嫌疑人。

有人可以澄清如何处理该清单行吗?

1 个答案:

答案 0 :(得分:4)

我不是100%肯定,但我怀疑问题是在你的包名中使用大写字母。

请尝试monodroid.drdapp - 这可能会清除错误。

(或者更好的是 - 使用公司名称作为清单的一部分)