【问题标题】:Xamarin Forms Android project causes two app iconsXamarin Forms Android 项目导致两个应用程序图标
【发布时间】:2017-09-22 11:45:52
【问题描述】:

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

在 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”的主要活动...

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

我怎样才能去掉安卓上的附加应用图标?

编辑: 这是 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>

【问题讨论】:

  • 请将您的Mainactivity 代码发布在您的MainLauncher = true 以及您的AndroidManifest.xml 代码所在的位置。
  • 这是否可能以某种方式反映了这个问题? bugzilla.xamarin.com/show_bug.cgi?id=43553

标签: xamarin xamarin.forms xamarin.android


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2017-12-05
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多