【问题标题】:My App Installs Two Applications - Android我的应用程序安装了两个应用程序 - Android
【发布时间】:2013-07-15 11:30:55
【问题描述】:

每当我尝试运行我的应用程序时,它都会在模拟器/设备中安装两个应用程序。我只想安装我的 Main Activity,但 Splash Activity 也会安装。我知道问题出在清单中。任何人都可以帮助我吗?这是我的代码:

<activity
        android:name="com.android.upcurrents.launcher.SplashActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
    android:name="com.android.upcurrents.MainActivity"
    android:label="@string/app_name" />

【问题讨论】:

    标签: android manifest main launcher


    【解决方案1】:

    我们有同样的问题,但我是这样解决的 在清单中的以下代码之前

    <application
            android:debuggable="true"
            android:allowBackup="true">
            <activity        android:name=".SplashActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name="com.noupdate.apptest_noupdate.MainActivity"
                android:icon="@drawable/ic_launcher"
                android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    

    注意在Intent里面的SplashActivity就是这段代码

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

    我只删除了类别

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

    所以在我删除了启动中的意图过滤器类别后,它没有安装两个应用程序图标,但只有一个主应用程序图标,代码将像这样通知意图过滤器类别已被删除

    <application
            android:debuggable="true"
            android:allowBackup="true">
            <activity     android:name=".SplashActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                </intent-filter>
            </activity>
            <activity
                android:name="com.noupdate.apptest_noupdate.MainActivity"
                android:icon="@drawable/ic_launcher"
                android:theme="@android:style/Theme.NoTitleBar"
                android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    

    真的很有帮助

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但我通过确保您只有一项活动来解决它:

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

      在我的代码中,我有两个带有该意图过滤器的活动,这导致在我的设备上安装了两个应用程序。

      【讨论】:

        【解决方案3】:

        试试这个:

        <activity
            android:name="com.android.upcurrents.launcher.SplashActivity"
            android:label="@string/app_name" >
        </activity>
        
        <activity
        android:name="com.android.upcurrents.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
         </activity>
        

        【讨论】:

          【解决方案4】:

          它会根据您提供的意图过滤器进行安装。
          从SplashActivity中移除如下intent filter,然后放到Main Activity中

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

          【讨论】:

            【解决方案5】:

            您只需要将一项活动声明为启动器。因此,从 SplashActivity 的标签中删除意图过滤器,并将其添加到您的 MainActivity。 Launcher 意图过滤器应仅出现在清单文件中的一项活动中。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-07-01
              • 1970-01-01
              • 2012-04-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-09-16
              相关资源
              最近更新 更多