每次更新后应用程序快捷方式都会消失,我的清单有什么问题?

时间:2015-07-11 12:15:15

标签: android xamarin xamarin.android

我不知道为什么会这样,我已经尝试了一切。每次我更新应用程序时,主屏幕上的上一个快捷方式都会消失。

这是我的完整应用清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.SpaceMonkey.Boats" android:versionCode="161" android:versionName="1.6.1">
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21" />
    <application android:label="Boats" android:icon="@drawable/playstore"></application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

我的主要活动:

[Activity (Label = "Boats", Icon = "@drawable/playstore", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity

我更新时唯一更改的是清单中的versionCode和versionName,绝对没有其他更改。

我在这里做错了什么?

编辑:我开始认为Xamarin在后台生成一个新的应用程序清单是一个问题,我不知道如何检查。

编辑:我刚刚使用Android(Xamarin)应用程序进行测试,该应用程序不使用Xamarin.Forms并且没有出现这个问题。我的怀疑在哪里证实它与Xamarin.Forms有关。

2 个答案:

答案 0 :(得分:2)

在我的情况下,通过更改我的Android应用项目AssemblyVersion的{​​{1}}来触发问题。

此问题是由Xamarin.Android 5.0及更高版本(不是Xamarin.Forms)引起的。正如in the release documentation here所述:

  

使用5.0版本,Android Callable的默认包名称   包装将基于装配合格的MD5SUM   要导出的类型的名称

AssemblyInfo.cs程序集限定名称的一部分,任何版本更改都会创建新的MD5哈希,从而创建新的默认程序包名称。 (阅读更多关于the assembly qualified named here

的信息

应用程序快捷方式使用默认程序包名称来启动您的应用程序,因此每次更新都会使快捷方式无效,系统会将其删除。

修复:请勿更改Android项目中的AssemblyVersion或其他任何更改程序集限定名称的内容。

答案 1 :(得分:1)

问题是Xamarin Studio。我基本上重新创建了解决方案并复制了所有内容,然后问题就消失了......

我不知道发生了什么,但现在已经解决了。