2014-11-16 8 views
7

Używam polecenia ./gradlew assembleRelease do generowania apk wersji dla aplikacji. Podczas instalowania aplikacji otrzymuję 2 ikony aplikacji.Nie mam pojęcia, co mi brakuje.Nie luch na Google. Kliknięcie drugiej ikony powoduje wyświetlenie Prostego nieokreślonego.2 ikony aplikacji po zainstalowaniu apk wersji, przy użyciu gradle kompilacji

Oto mój plik build.gradle:

buildscript { 
repositories { 
    maven { url 'http://download.crashlytics.com/maven' } 
} 

dependencies { 
    classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.0.0' 
} 
} 
apply plugin: 'com.android.application' 
apply plugin: 'crashlytics' 

repositories { 
    maven { url 'http://download.crashlytics.com/maven' } 
} 


android { 
compileSdkVersion 21 
buildToolsVersion '20.0.0' 



defaultConfig { 
    versionCode 23 
    versionName "1.1.8.5" 
    applicationId "com.squad.run" 
    minSdkVersion 10 
    targetSdkVersion 20 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 


signingConfigs { 
    //Set debug.keystore file here 
    release { 
     def propsFile = rootProject.file('keystore.properties') 
     def Properties props = new Properties() 
     props.load(new FileInputStream(propsFile)) 
     storeFile = file(props['storeFile']) 
     storePassword = props['storePassword'] 
     keyAlias = props['keyAlias'] 
     keyPassword = props['keyPassword'] 
    } 
} 
buildTypes { 
    debug { 
     applicationIdSuffix ".debug" 
     ext.enableCrashlytics = false 

    } 

    release { 
     zipAlign true 
     signingConfig signingConfigs.release 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt') 

    } 

} 
    packagingOptions { 
    exclude 'META-INF/LICENSE.txt' 
    exclude 'META-INF/NOTICE.txt' 
} 
} 

dependencies { 
// compile 'com.android.support:support-v4:20.0.0' 
compile project(':Libraries:viewPagerIndicator_Squadrun') 
compile project(':Libraries:facebookSDK') 
compile project(':Libraries:library') 
compile project(':Libraries:progressHUD_Squadrun') 
compile project(':Libraries:slidingMenuLibrary_SquadRun') 
compile project(':Libraries:MobihelpSDK') 
compile 'com.squareup.retrofit:retrofit:1.5.1' 
compile 'com.google.code.gson:gson:2.2.4' 
compile 'com.google.android.gms:play-services:6.1.71' 
compile 'com.android.support:appcompat-v7:21' 
compile 'com.squareup.picasso:picasso:2.3.4' 
compile 'org.apache.httpcomponents:httpmime:4.2.3' 
compile 'com.squareup.okhttp:okhttp:1.6.0' 
compile 'com.squareup.okhttp:okhttp-urlconnection:1.6.0' 
compile 'oauth.signpost:signpost-commonshttp4:1.2.1.2' 
compile 'org.twitter4j:twitter4j-core:4.0.1' 
compile files('libs/FlurryAnalytics-4.1.0.jar') 
compile 'com.crashlytics.android:crashlytics:1.0.0' 
} 
+0

Co to jest "lista aplikacji"? Masz na myśli program uruchamiający ekran główny? Masz na myśli listę zainstalowanych aplikacji w Ustawieniach? Czy masz na myśli coś innego? Poza tym, rozważ zaktualizowanie swojego pytania, aby opublikować plik 'build.gradle' (z modułu aplikacji) i plik' AndroidManifest.xml'. – CommonsWare

+0

Twój manifest deklaruje 2 zamiary launcherów. – Simon

+0

@Simon: Niekoniecznie - pliki Gradle mogą mieć oddzielne wartości 'applicationId' dla wersji' debug' versus 'release'. W takim przypadku posiadanie dwóch wpisów programu uruchamiającego może oznaczać, że zarówno aplikacje do debugowania, jak i wydania są zainstalowane w tym samym czasie. W takim przypadku na liście zainstalowanych aplikacji znajdują się dwa wpisy, a nie tylko jeden (dla aplikacji z dwoma działaniami "LAUNCHER"). Dlatego potrzebujemy więcej informacji z PO na temat dokładnego charakteru objawów. – CommonsWare

Odpowiedz

24

My top Domyślam się, że jest więcej niż jeden LAUNCHER aktywność, a jednym z nich jest zadeklarowana w projekcie biblioteki. Eclipse nie połączył manifestów, ale Gradle to robi.

Proponuję więc wyszukać android.intent.action.MAIN we wszystkich plikach AndroidManifest.xml.

+0

tak, to był dokładnie ten problem .. – Shubham

+0

Czasami dodajemy tylko kilka innych bibliotek z "android.intent.action.MAIN" zadeklarowanym wewnątrz. Musisz ponownie sprawdzić. – Robert

Powiązane problemy