我不知道为什么会这样,我已经尝试了一切。每次我更新应用程序时,主屏幕上的上一个快捷方式都会消失。
这是我的完整应用清单:
<?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有关。
答案 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。我基本上重新创建了解决方案并复制了所有内容,然后问题就消失了......
我不知道发生了什么,但现在已经解决了。