Xamarin Forms Android项目会导致两个应用程序图标

时间:2017-09-22 11:45:52

标签: xamarin xamarin.forms xamarin.android

我有一个基于PCL的Xamarin Forms解决方案,使用的是Xamarin.Forms版本2.3.4.270。

在Visual Studio 2017中构建Xamarin android项目时,在android项目的自动生成的“... \ _ obj \ Debug \ android \ AndroidManifest.xml”文件中添加了一个神秘的活动,导致两个应用程序图标在手机上运行应用程序时部署:

<activity android:name="md54d0b3c92dfecf2a187a4c8b660786aba.MainActivityForCodeAnalysisBugWorkaroundPleaseIgnore">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

我确保整个解决方案中的所有项目都没有标记为“在构建时启用代码分析”,并且我只有一个主要活动“MainLauncher = true”......

启动第一个应用程序图标时,仅显示空白的空视图。启动第二个应用程序图标时,将启动真实应用程序。

如何摆脱Android上的aditional app图标?

编辑: 这是MainActivity:

[Activity(Label = "@string/app_name", Theme = "@style/MyTheme", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity

这是带有MainLauncher=true的SplashScreen-Activity:

[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : AppCompatActivity

我已经在各种其他xamarin.forms应用程序中使用了这种方法,但没有任何问题。

这是清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="@string/package_name" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:label="@string/app_name" android:icon="@drawable/icon"></application>
</manifest>

1 个答案:

答案 0 :(得分:2)

此问题是由于pcl依赖项需要通过添加MainLauncher = true的新活动来修复代码分析问题。

请参阅https://bugzilla.xamarin.com/show_bug.cgi?id=43553

pcl库的Android实现添加了一个额外的活动。 在主要的xamarin android项目中,Visual Studio将此活动包含在清单文件中。

因此,如链接中所述,Android pcl库的代码分析问题的所有解决方案都会导致两个应用程序图标。

要删除第二个应用图标,只需将伪活动属性的“MainLauncher”设置为false即可。这仍然允许您运行代码分析,但不会添加第二个应用程序图标。