2016-07-11 21 views
0

私はエミュレータ(および携帯電話)でアプリを実行し、ホーム画面に2つのショートカットを作成しています。アプリを削除すると、両方のショートカットが削除されます。Androidアプリはホーム画面に重複したショートカットを作成しています

私のアプリはsplash screenにあります。その後、メイン画面に移動し、Androidスタジオを使用しています。

私は<intent-filter>と関連していると思いますが、アプリを実行するたびに削除するたびに、両方とも<activity>に自動的に表示されます。

マニフェストファイル:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.epicbit.tecnoprolab" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="15" 
     android:targetSdkVersion="23" /> 

    <receiver android:name="receiver.NetworkChangeReceiver" > 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:hardwareAccelerated="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" > 

     <!-- Splash screen --> 
     <activity 
      android:name="com.example.epicbit.tecnoprolab.SplashScreen" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.Black.NoTitleBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.epicbit.tecnoprolab.MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

はEDIT:このビデオは、私はあなたのsugestionsに従うときが起こるかを理解するために チェック:

https://vid.me/onhe

答えて

0

MainActivity

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

    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
から以下のコードを削除

あなたのSplashScreenはあなたのアプリのルートアクティビティです...これらのパラメータはSplashScreenにのみ必要です。

最終結果

<!-- Splash screen --> 
<activity 
    android:name="com.example.epicbit.tecnoprolab.SplashScreen" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Black.NoTitleBar" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
<activity 
    android:name="com.example.epicbit.tecnoprolab.MainActivity" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme.NoActionBar" > 
</activity> 

UPDATE

私はあなたの写真を確認しました。私はあなたが次のファイルに更新されていることを見た

app/build/intermediates/manifests/full/debug/AndroidManifest.xml 

ただし、アプリ/ファイルをビルドするには、フォルダであるAndroidのメーカーは、生成されたファイルを入れた...

はマニフェストを検索してみてくださいあなたのソースコードフォルダ..のような何か:

app/src/... (or any other folder different from build) 
+0

アンドロイドスタジオでRUNを押すと自動的に彼は再び追加: '<インテントフィルター> アンドroid: ' 私のmainActivityに。なぜか分からない。 –

+0

@CarlosBrancoあなたのアプリにライブラリを追加していますか?それとも何か?たぶん、Android Studioはマニフェストファイルを別のものとマージしています... – W0rmH0le

+0

私のプロジェクトはかなり小さいです。 http://i.imgur.com/2Lo80Yl.png これを確認してください。うーん、なぜこれが起こるのか分かりません。 –

0

あなたの1つのMAINアクションとあなたのapplicaitonのための活動を開始しているにも1 LAUNCHERインテントフィルタをする必要がありますマニフェスト

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

アプリケーションのルートアクティビティのみ。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.epicbit.tecnoprolab" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="15" 
     android:targetSdkVersion="23" /> 

    <receiver android:name="receiver.NetworkChangeReceiver" > 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:hardwareAccelerated="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" > 

     <!-- Splash screen --> 
     <activity 
      android:name="com.example.epicbit.tecnoprolab.SplashScreen" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.Black.NoTitleBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

     </activity> 
    </application> 
+0

仕事はしません。私のAndroidスタジオは、アプリケーションを実行するときに削除するたびに、すべてのアクティビティに<インテントフィルタ>を追加します。 –

関連する問題