当前位置: 首页 > 知识库问答 >
问题:

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

常永怡
2023-03-14

我有一个使用Xamarin的基于PCL的Xamarin表单解决方案。表格版本2.3.4.270。

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

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

当启动第一个应用程序图标时,只显示一个空白的视图。启动第二个app图标时,真正的app就启动了。

如何在android上删除附加的应用程序图标?

编辑:这是主要活动:

[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-active:

[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个答案

燕寒
2023-03-14

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

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

pcl 库的Android实现增加了一个额外的活动。在主要的 xamarin Android项目中,可视化工作室将此活动包含在清单文件中。

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

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

 类似资料:
  • 我在一个项目下有两个离子应用程序和一个共享的角度库。假设网站(应用程序1) 我随后将多个Angular应用程序合并为一个应用程序,并将我的ionic应用程序更新为bellow。在app 1中,AppModule声明了共享模块,还导入了App2SharedModule 类似于app 2 AppModule 从应用1导航到应用2时(应用路由模块页面) 通过将最后一条路线(仪表板)添加到app 1 ap

  • 因此,我试图在另一个项目(测试框架)中添加一个SpringBoot可执行jar作为依赖项。 然而,一旦添加到pom和导入。Java导入不能正常工作。如果我看看罐子里面,所有的包都在前面加上: BOOT-INF/classes.some.package.classname.class 还有一些与Spring启动相关的软件包,MANIFEST等。 如果我将SpringBoot应用程序的构建切换为只使用

  • 项目1:Firebase Analytics测试项目2:Firebase Analytics Prod项目 如何在一个项目中添加两个google-services.json文件。有没有其他方法可以使用相同的。

  • 我需要安装带有两个grails应用程序的Tomcat。 这两个应用程序都应该使用如下的8080: localhost:8080/app1 localhost:8080/app2 我试图将我的两个war文件放在webapps文件夹中,然后上载服务器。 当服务器上载时,我在catalina.out日志文件中发现了这个异常: 2014年4月23日1:27:27 PM org.apache.coyote.

  • 我想在IOS和Android上实现电子商务应用程序。我可以把应用程序分为两个部分,不太安全,更安全。我可以说更安全的是在应用程序中接受付款。因此,出于这个目的,我希望有独立的登录系统来进入应用程序和支付。我使用Firebase身份验证和密码身份验证。所以在项目开始时,如果我们想使用Firebase(用于身份验证和数据库),我们需要为Android应用程序添加google-services.json

  • 这里是Android开发者新手。我在MainActivity中使用recyclerview,应用程序不断崩溃。 任何帮助都将受到赞赏! 编辑:对不起,我是新来的。我已经附加了Logcat。和其他xml文件。谢谢 这是我的代码: 列出你的布局。xml: activity_main.xml: } ProductAdapter。java类: } Logcat: 致命异常:主进程:e.wolverine2