【问题标题】:xamarin Android Deployment on Android Mobile Device IssueAndroid 移动设备上的 xamarin Android 部署问题
【发布时间】:2018-04-12 12:02:49
【问题描述】:

先生, 以前,当我在 Visual Studio 2017 上使用 xamarin 部署我的 android 应用程序时,该应用程序将被完美部署。但是在观看了谷歌地图教程的视频后:https://www.youtube.com/watch?v=W6Q0olRPsus,我无法在安卓设备和模拟器上部署应用程序。

现在我在部署时收到以下错误:Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

这是我的错误日志文件:https://drive.google.com/open?id=0Bxn7UXgmstmRZzMtLV9nc3M5RlU

清单代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="VaishnoDeviTourismApp.VaishnoDeviTourismApp" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="16" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <permission android:name="VaishnoDeviTourismApp.VaishnoDeviTourismApp.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
    <uses-permission android:name="VaishnoDeviTourismApp.VaishnoDeviTourismApp.permission.MAPS_RECEIVE" />
    <uses-features android:glEsVersion="0x00020000" android:required="true" />
    <application android:label="VaishnoDeviTourismApp" android:icon="@drawable/logo">
        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyBRVXFw2TXfTLDr1Dzu8-HDiv-FQJdEZ3E" />
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    </application>
</manifest>

【问题讨论】:

  • 您能出示您的清单吗?此错误表示您的清单中有错误。
  • 先生,我已经编辑了上述问题并添加了我的清单文件代码。

标签: xamarin xamarin.android


【解决方案1】:

在测试您的清单后,我们发现错误是在您的许可&lt;permission android:name="VaishnoDeviTourismApp.VaishnoDeviTourismApp.permission.MAPS_RECEIVE" android:protectionLevel="signature" /&gt; 下发生的。

VaishnoDeviTourismApp.VaishnoDeviTourismApp... 应该是你的包名,在你的场景中第一个字母是大写的,我们可能需要把它改成小写。喜欢这个vaishnoDeviTourismApp.VaishnoDeviTourismApp...。或者您可以尝试像这样更改它&lt;uses-permission android:name="${applicationId}.permission.MAPS_RECEIVE" android:protectionLevel="signature"&gt;

我没有找到任何文件指出这个规则,实际上,相反,文件说:

名称可以包含大写或小写字母(“A”到“Z”)、数字和下划线(“_”)。但是,个别包名部分只能以字母开头。

所以,我现在只能将其视为一个错误,我发现了这个report in Bugzilla

【讨论】:

  • 先生,Package name 中的第一个单词是否必须保持小写?我们可以手动将其更改为小写吗?因为VaishnoDeviTourismApp.VaishnoDeviTourismApp是我的应用程序的包名,是在创建项目时默认创建的。
  • @SumeetKumar,是的,我也有同样的疑问,正如我所说,没有强制保留第一个单词小写,这就是为什么我说这是一个潜在的错误。你可以尝试使用&lt;uses-permission android:name="${applicationId}.permission.MAPS_RECEIVE" android:protectionLevel="signature"&gt;,在原生java android中,${applicationId}应该自动指向你的包ID。
猜你喜欢
  • 1970-01-01
  • 2015-09-04
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多