【问题标题】:Android Application creating two launcher iconsAndroid 应用程序创建两个启动器图标
【发布时间】:2012-01-31 15:31:57
【问题描述】:

我一直在开发一个应用程序,但我遇到了一个非常令人困惑的问题。突然,在运行我的应用程序时,我发现启动时立即强制关闭。

经过进一步调查,我在启动器中发现了两个启动器图标。其中之一将在应用程序运行时恢复应用程序,如果应用程序未运行,则强制关闭。第二个将正常运行 - 正常启动应用程序并正常恢复。

我很困惑,因为我没有做任何事情(我能想到的)导致这个问题。我没有更改清单中的任何内容,只是实施了一些新方法来更快地更改我的应用中的颜色。

无论我关闭手机、手动终止应用程序还是卸载/重新安装应用程序,这些问题在我所有的模拟器和设备中都同样存在。一个简单的 ctrl+z 不起作用。澄清一下 - 我只想返回一个启动器图标来正常启动我的应用程序(没有什么特别的)。

更新:

我现在在从任一图标启动时都会立即关闭。我确实在我的清单显示的两个活动中找到了代码,并将第二行从 .LAUNCHER 更改为 .DEFAULT 确实解决了我原来的问题。但是,我现在总是立即收到强制关闭...在我最初的启动器活动中现在存在问题(我可以看到)...我在尝试解决这个问题时遇到了很多麻烦(不知道该怎么办做)并且开始变得非常担心!

更新 2:

我发现了我的问题,感谢大家的帮助!我实际上同时发生了两个独立且不相关的问题。第一个 - 我的启动器中有两个图标:因为我有两个活动

【问题讨论】:

    标签: android eclipse icons launcher launching-application


    【解决方案1】:

    两个活动有

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

    删除第二个

    【讨论】:

    • 我确实在我的清单中找到了它,删除它确实删除了第二个启动器图标。但是,我现在总是被立即强制关闭...
    • 更新:我现在看到从任一图标启动时立即关闭。我确实在我的清单中的两个活动中找到了您引用的代码,并将第二行从 .LAUNCHER 更改为 .DEFAULT 确实解决了我原来的问题。但是,我仍然总是被立即强制关闭......我在尝试解决这个问题时遇到了很多麻烦(不知道该怎么做)并且开始变得非常担心!
    【解决方案2】:

    实际上,Android Launcher 会显示所有类别为 LAUNCHER 的活动,而不是应用程序。

    如果您的应用程序包含超过 1 个活动,则您必须仅将操作 MAIN 和类别 LAUNCHER 用于应用程序的默认活动(初始屏幕),而不是用于您在应用程序中使用的所有活动。如果您为应用程序中的每个活动设置相同的内容,它将显示在 Android 启动器中。

    请阅读 Intent Actions 和 Categories,你会明白的。

    【讨论】:

      【解决方案3】:

      嗯,我也面临同样的问题。问题是当我运行应用程序时,它正在创建两个图标,一个名为 MyApp,另一个名为 SplashActivity。 当我试图卸载 SplashActivity(命名应用程序)时,在确认消息中它说

      SplashActivity 是 MyApp 的一部分,确定要卸载吗?

      看了一些参考资料,得出结论,当我们放

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

      在任何activity下,android都认为这是App的MAIN入口点。并为该活动创建一个启动器图标。但名称保留为 acivityName。

      所以最后通过改变SplashActivity的Activity标签

       <activity
          android:name=".activities.SplashActivity"
          android:label="@string/title_activity_splash"
          android:theme="@style/SplashTheme">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
       </activity>
      

      <activity
          android:name=".activities.SplashActivity"
          android:label="@string/app_name"
          android:theme="@style/SplashTheme">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
      </activity>
      

      它解决了我的多个图标和启动器图标名称为 activityName 而不是 appName 的问题。

      【讨论】:

        【解决方案4】:

        就我而言,帮助了类似的事情

        清单文件中的旧一行

        启动画面活动

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

        主要活动

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

        还有新的

        启动画面活动

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

        主要活动

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
        

        只需在 Main Activity 中删除下面的这一行

        <category android:name="android.intent.category.LAUNCHER" />
        

        就是这样!

        【讨论】:

          【解决方案5】:

          在 AndroidMenifest.xml 文件中,您必须删除两个或三个 android 名称,即

          <activity
              android:name=".SplashScreen"
              android:label="@string/app_name" >
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
          
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-31
            • 1970-01-01
            • 1970-01-01
            • 2022-11-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多