Aplicación instalada a través de android studio no mostrada en Launcher

De repente la aplicación en la que estoy trabajando no se muestra en el lanzador. Puedo verlo en Ajustes> Aplicaciones y se ejecuta como una aplicación normal cuando lo inicie desde Android Studio.

Por lo que suena como si me falta:

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

en el manifiesto. No, están ahí. ¿Qué más puede causar esto? ¿Construye gradle lío con esto posiblemente?

Este es mi manifiesto completo y el archivo gradle de la estructura. ¿Alguien puede ver algo que estoy perdiendo?

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /> <uses-feature android:name="android.hardware.camera" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.crashlytics.ApiKey" android:value="xxxxxx" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="xxxx" /> <activity android:name="com.example.app.MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <data android:host="com.example.twitter.oauth" android:scheme="oauth" /> </intent-filter> </activity> <activity android:name="com.example.app.SigninActivity" android:label="@string/sign_in" android:screenOrientation="portrait" > </activity> <activity android:name="com.example.app.PostActivity" android:label="@string/action_new" android:screenOrientation="portrait" > </activity> <activity android:name="com.example.app.twitter.OAuthActivity" android:label="@string/action_new" android:screenOrientation="portrait" > </activity> <activity android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" /> <receiver android:name="com.example.app.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcm" /> </intent-filter> </receiver> <service android:name="com.example.app.gcm.GCMIntentService" /> </application> </manifest> 

build.gradle:

 buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'crashlytics' repositories { maven { url 'http://download.crashlytics.com/maven' } } android { compileSdkVersion 19 buildToolsVersion '19.1.0' def versionPropsFile = file('version.properties') if (versionPropsFile.canRead()) { def Properties versionProps = new Properties() versionProps.load(new FileInputStream(versionPropsFile)) def value = 0 def runTasks = gradle.startParameter.taskNames if ('assemble' in runTasks || 'assembleRelease' in runTasks || 'aR' in runTasks) { value = 1; } def versionMajor = 1 def versionMinor = 0 def versionPatch = versionProps['VERSION_PATCH'].toInteger() + value def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1 def version_Code = versionProps['VERSION_CODE'].toInteger() + value versionProps['VERSION_PATCH'] = versionPatch.toString() versionProps['VERSION_BUILD'] = versionBuild.toString() versionProps['VERSION_CODE'] = version_Code.toString() versionProps.store(versionPropsFile.newWriter(), null) defaultConfig { versionCode version_Code versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild}) Alpha" minSdkVersion 15 targetSdkVersion 19 } } else { throw new GradleException("Could not read version.properties!") } signingConfigs { debug { storeFile file('xxx.jks') storePassword 'xxx' keyAlias 'debug' keyPassword 'xxx' } releaseKey { storeFile file('xxx.jks') storePassword 'xxx' keyAlias 'com.example.app' keyPassword 'xxx' } } buildTypes { debug { debuggable true applicationIdSuffix '.debug' runProguard false } release { runProguard false } } lintOptions{ checkReleaseBuilds false abortOnError false } } dependencies { compile files('libs/twitter4j-core-4.0.1.jar') compile files('libs/okhttp-2.0.0.jar') compile files('libs/okio-1.0.0.jar') compile 'com.android.support:support-v4:20.0.+' compile 'com.google.android.gms:play-services:+' compile 'com.android.support:appcompat-v7:20.0.+' compile project(':facebook') compile project(':parallaxViewPager') compile 'com.crashlytics.android:crashlytics:1.+' } 

En realidad, puede tener un filtro de intención con data android:host en la actividad del lanzador. Sólo tiene que ser un filtro separado para el que contiene la categoría de lanzador. La siguiente configuración hace que mi actividad sea un lanzador y sea navegable para leer los parámetros de entrada:

 <activity android:name=".MainActivity" android:label="@string/app_name_full"> <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.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="www.giorgos.nl" android:pathPrefix="/cv" /> <data android:scheme="cv" android:host="giorgos"/> </intent-filter> </activity> 

La respuesta de esta pregunta lo resolvió para mí: Icono del iniciador que falta en Android

Su aparentemente imposible tener <data android: host … en la actividad del lanzador.

  • Cambiar el nombre de apk con Gradle
  • Gradle firma sabores con diferentes claves en Android
  • ¿Qué debo establecer para compileSdkVersion, minSdkVersion y targetSdkVersion?
  • cómo hacer fuera de árbol android construye con gradle
  • La ejecución falló para la tarea ': app: transformClassesWithDexForDebug' al implementar Google inicie sesión en Android
  • Error al resolver: com.android.support:appcompat-v7:25.1.0
  • Aplicación de la biblioteca multidex para Android
  • No se pueden usar marcadores de posición de manifiesto para eliminar un permiso
  • La fusión de manifiesto ha fallado: uses-sdk: minSdkVersion 1 no puede ser más pequeña que la versión 7
  • External AndroidManifest.xml no aparece en el panel de vista del proyecto
  • Gradle con java 8 para retrolambda - Android no puede encontrar anotaciones TargetApi
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.