2014-09-10 4 views
23

applicazione in esecuzione in studio Android dà 2 icone delle applicazioni novizio in Androi studio diEsecuzione applicazione offre 2 icone delle applicazioni in Android Studio - newbie

finalmente avevo fatto la mia applicazione in esecuzione, im da Eclipse per Android Studio e ora Im che ha problemi su come colorare logcat come eclissi?

la mia domanda è che ci sono 2 icone di app quando eseguo l'app, e quando la disinstalla, 2 di loro sono state rimosse. è normale in Android Studio?

Ho trovato che Android Studio può copiare le chiavi da Eclipse.

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

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="19" /> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 



    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 


    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.VIBRATE"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

    <!-- Google Map v.2 permissions --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

    <!-- GCM permissions --> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <permission android:name="com.example.gcm.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 
    <uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /> 


    <!-- Writing Persmission --> 
    <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> 
    <uses-permission android:name="android.permission.WRITE_PROFILE" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS"/> 

    <uses-permission android:name="android.permission.READ_PROFILE"/> 
    <uses-permission android:name="android.permission.READ_CONTACT"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 

     <activity android:name="com.mytrack.ph.SplashActivity" 
      android:label="@string/app_name" 
      android:noHistory="true" 
      android:screenOrientation="portrait" 
      android:theme="@style/splashScreenTheme" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.mytrack.ph.LoginActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait" 
      > 
     </activity> 
     <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="@string/google_map_api_key"/> 
     <activity android:name="com.facebook.LoginActivity" 
        android:theme="@android:style/Theme.Translucent.NoTitleBar" 
        android:label="@string/app_name" /> 
     <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/> 
     <service android:name="com.my.track.service.MyTrackService"></service> 
     <receiver 
      android:name="com.my.track.service.MyTrackGcmBroadcastReceiver" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <category android:name="com.my.track.service" /> 
      </intent-filter> 
     </receiver> 

     <service android:name="com.my.track.service.MyTrackGcmIntentService" /> 
     <activity android:name="NavigationMenuActivity" 
      android:configChanges="orientation|keyboardHidden" 
      android:screenOrientation="portrait" 
      android:launchMode="singleTop" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      ></activity> 
     <receiver android:name="com.my.track.results.ConnectionChangeReceiver" > 
      <intent-filter> 
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> 
      </intent-filter> 
     </receiver> 


    </application> 

</manifest> 

Anche se questo è normale in Android Studio. L'esecuzione di un'app offre 2 icone di avvio. PS:

mia AndroidManifest.xml è dentro cartella principale di e ho usato Eclipse per esportare in Gradle build.

Im utilizzando Android Studio 0.8.6 grazie.

+2

Pubblica il file manifest. Assicurati di non definire due attività con filtri di intent che specificano la categoria LAUNCHER. –

+0

no non ho definito 2 attività di tipo launcher. – david

+0

pubblica il tuo build.gradle –

risposta

41

Ho capito! sì finalmente, devo studiare i gradles e roba del genere.

Attualmente ho 2 progetti Android all'interno del Progetto, uno è una libreria e l'altro è l'app principale.

Ho scoperto che quando ho importato quei progetti Android Studio (ho esportato la libreria lib in gradle build da eclipse) non mi interessa se quello è un progetto lib o un progetto principale. (Correggimi se sbaglio).

quindi l'unica cosa per farlo funzionare è rimuovere il intent-filter del progetto lib-android.

MODIFICA: @all risolto! grazie a tutti, non ho mai saputo che c'era un altro AndroidManifest.xml, pensavo che Eclipse l'avesse rimosso. e ho pensato che esportarlo in gradle lo rimuoverà perché è controllato come una libreria.

grazie per tutto il vostro aiuto.

+1

anche se si ha attributo come questo '' rimuoverli '' – Amt87

+2

Ho appena avuto questo problema su un'app con due attività, rimosso il filtro intent sulla mia seconda attività e ha rimosso il problema con due app! – mkabatek

+1

Super utile. Finalmente. – Jameson

19

Il <intent-filter> che interessa la creazione di più un'icona di avvio è la seguente:

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

Android Studio di manifest merger sarà sempre combinare <intent-filter> s in progetti di libreria in manifesta del progetto principale. Potresti finire con più intenti LAUNCHER nel tuo manifest sintetizzato, avendo così più icone di avvio. Per evitare ciò, è sufficiente rimuovere gli intenti LAUNCHER dal manifest del progetto di libreria.

4

Sono d'accordo, dal momento che ho fatto 2 attività (una per splash, una per main). In manifest ho dimenticato di cancellare

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

quindi alla fine quando installo app, avrò 2 app.

+0

questo dovrebbe essere un commento per favore – swiftBoy

+0

Era esattamente un mio problema, grazie! – Starwave

3

Si dichiara due filtri di intent, utilizzato solo un filtro di Intent nell'attività, su AndroidManifest.

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

Se è stato utilizzato due o più filtri intenti AndroidManifest, allora si avrà due icona dell'applicazione, quindi rimuoverla & impostare un filtro intento.

I hove questo è utile a voi.