studio muestra logs for failed errores error diseño configurar comunes check actualizar android android-studio gradle android-studio-3.0

muestra - errores comunes en android studio



Error de Android Studio 3.0. Migrar configuraciones de dependencia para módulos locales (6)

Con el nuevo complemento, la resolución de dependencia consciente de variantes

implementation project('':MyLib'')

necesita tener tipos de compilación coincidentes exactos. La guía de migración describe esto

Por ejemplo, no es posible hacer que una variante de ''depuración'' consuma una variante de ''liberación'' a través de este mecanismo porque el productor y el consumidor no coincidirían. (En este caso, el nombre ''depuración'' se refiere al objeto de configuración publicado mencionado anteriormente en la sección Dependencias de publicación.) Ahora que publicamos dos configuraciones, una para compilar y otra para tiempo de ejecución, esta antigua forma de seleccionar una configuración realmente no '' No funciona más.

Entonces el viejo método de

releaseCompile project(path: '':foo'', configuration: ''debug'')

ya no funcionará

Ejemplo

Con su ejemplo, esto se vería así:

En la aplicación build.gradle :

apply plugin: ''com.android.application'' android { buildTypes { debug {} releaseApp {} releaseSdk {} } ... dependencies { implementation project('':MyLib'') } }

En el módulo / lib ''MyLib'' build.gradle :

apply plugin: ''com.android.library'' android { buildTypes { debug {} releaseApp {} releaseSdk {} } }

Por lo tanto, el tipo de compilación debe coincidir exactamente , ni más ni menos.

Uso de fallos de compilación

Se puede usar una nueva característica llamada "matchingFallbacks" para definir los tipos de compilación predeterminados si un submódulo no define el tipo de compilación.

Utilice matchFallbacks para especificar coincidencias alternativas para un tipo de compilación determinado (...)

Por ejemplo, si el módulo / lib ''MyLib'' gradle se vería así:

apply plugin: ''com.android.library'' android { buildTypes { debug {} releaseLib {} } }

Puede definir lo siguiente en su aplicación build.gradle :

apply plugin: ''com.android.application'' android { buildTypes { debug {} releaseApp { ... matchingFallbacks = [''releaseLib''] } releaseSdk { ... matchingFallbacks = [''releaseLib''] } } ... dependencies { implementation project('':MyLib'') } }

Dimensiones faltantes de sabor

Use missingDimensionStrategy en el bloque defaultConfig para especificar el sabor predeterminado que el complemento debe seleccionar de cada dimensión faltante

android { defaultConfig { missingDimensionStrategy ''minApi'', ''minApi18'', ''minApi23'' ... } }

Recientemente instalé la última versión de Canary de Android Studio que actualmente utiliza el complemento Android Gradle 3.0.0-alpha4.

Ahora recibo un error:

Error:Failed to resolve: Could not resolve project :MyLib. Required by: project :app

He leído: migrar configuraciones de dependencia para módulos locales

dependencies { // This is the old method and no longer works for local // library modules: // debugCompile project(path: '':foo'', configuration: ''debug'') // releaseCompile project(path: '':foo'', configuration: ''release'') // Instead, simply use the following to take advantage of // variant-aware dependency resolution. You can learn more about // the ''implementation'' configuration in the section about // new dependency configurations. implementation project('':foo'') // You can, however, keep using variant-specific configurations when // targeting external dependencies. The following line adds ''app-magic'' // as a dependency to only the ''debug'' version of your module. debugImplementation ''com.example.android:app-magic:12.3'' }

Cambié:

releaseCompile project(path: '':MyLib'', configuration: ''appReleaseApp'') debugCompile project(path: '':MyLib'', configuration: ''appDebug'')

a:

implementation project('':MyLib'')

pero aún tengo este error: Error:Failed to resolve: Could not resolve project :MyLib.

lib gradle:

apply plugin: ''com.android.library'' android { publishNonDefault true compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { minSdkVersion 14 targetSdkVersion 25 } buildTypes { debug { ... } releaseApp { ... } releaseSdk { ...'' } } flavorDimensions "default" productFlavors { flavor1{ ... flavor2{ ... } flavor3{ ... } } } dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:25.3.1'' compile ''com.android.support:support-v4:25.3.1'' compile ''com.google.code.gson:gson:2.8.0'' compile ''com.google.android.gms:play-services-maps:10.2.6'' compile ''com.google.android.gms:play-services-gcm:10.2.6'' compile ''com.google.android.gms:play-services-location:10.2.6'' } apply plugin: ''maven'' uploadArchives { repositories { mavenDeployer { repository(url: mavenLocal().url) } } }

aplicación gradle:

apply plugin: ''com.android.application'' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { vectorDrawables.useSupportLibrary = true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" minSdkVersion 19 targetSdkVersion 25 versionCode 12 versionName "5.0.2" } buildTypes { release { ... } debug { ... } } flavorDimensions "default" productFlavors { flavor1 { ... } flavor2 { ... } } testOptions { unitTests { all { jvmArgs ''-noverify'' systemProperty ''robolectric.logging.enable'', true } } } } repositories { flatDir { dirs ''libs'' } } dependencies { // releaseCompile project(path: '':MyLib'', configuration: ''appRelease'') // debugCompile project(path: '':MyLib'', configuration: ''appDebug'') implementation project('':MyLib'') compile fileTree(dir: ''libs'', include: [''*.jar'']) androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' }) compile ''com.google.android.gms:play-services-maps:10.2.6'' compile ''com.google.android.gms:play-services-location:10.2.6'' compile ''com.google.android.gms:play-services-analytics:10.2.6'' compile ''com.google.android.gms:play-services-gcm:10.2.6'' compile ''com.google.code.gson:gson:2.8.0'' compile ''com.android.support:appcompat-v7:25.3.1'' compile ''com.android.support:design:25.3.1'' compile ''com.android.support:support-v4:25.3.1'' compile ''com.android.support:cardview-v7:25.3.1'' compile ''com.android.support:gridlayout-v7:25.3.1'' compile ''com.android.volley:volley:1.0.0'' compile ''com.facebook.stetho:stetho:1.4.1'' compile ''com.facebook.stetho:stetho-okhttp3:1.4.1'' compile ''com.android.support:percent:25.3.1'' compile ''com.android.support:recyclerview-v7:25.3.1'' compile ''com.squareup.picasso:picasso:2.5.2'' testCompile ''junit:junit:4.12'' testCompile ''org.mockito:mockito-core:2.1.0'' testCompile ''org.robolectric:robolectric:3.1.4'' testCompile ''org.assertj:assertj-core:1.7.1'' compile ''com.flipboard:bottomsheet-core:1.5.0'' compile ''com.flipboard:bottomsheet-commons:1.5.0'' compile ''com.android.support.constraint:constraint-layout:1.0.1'' } apply plugin: ''com.google.gms.google-services''

Por favor ayuda


Después de enfrentar el mismo problema, finalmente declaró exactamente los mismos buildTypes en los archivos build.gradle de la aplicación y los módulos.

En su caso, agregando

buildTypes { debug {} releaseApp {} releaseSdk {} }

a build.gradle de su módulo debería hacer el truco.

Asegúrese de cambiar cualquier "proyecto de compilación" a "proyecto de implementación" también.

Espero eso ayude


Esta solución funcionó para mí. Estoy usando Android Studio 3.1.2. Complemento Android Gradle 3.1.2. Gradle 4.4. Tengo un módulo de biblioteca con sabores como trial y premium . Como parte del proceso de migración al complemento Android Gradle 3.1.2, agregué una dimensión de sabor main al archivo de compilación Gradle de mi módulo de biblioteca. Por lo tanto, para corregir el error de compilación en el archivo build.gradle mi aplicación, build.gradle lo siguiente:

debugImplementation project(path: '':library'', configuration: ''premiumDebug'') releaseImplementation project(path: '':library'', configuration: ''premiumRelease'')

convirtió

implementation project('':library'')

y agregué la siguiente línea a mi bloque missingDimensionStrategy ''main'', ''premium'' : missingDimensionStrategy ''main'', ''premium''


Estaba enfrentando el mismo problema, encontré esta página de migración: Crear tipos coincidentes

Afirma:

Seleccionar valores predeterminados para los tipos de compilación faltantes
Si un consumidor configura un tipo de compilación que no lo hace un productor, debe hacer coincidir manualmente el tipo de compilación del consumidor con uno del productor. Por ejemplo, si su módulo de aplicación configura un tipo de compilación "provisional" y su dependencia del módulo de biblioteca, "mylibrary", no lo hace, el complemento de Android arroja el siguiente error de compilación:

Error:Failed to resolve: Could not resolve project :mylibrary. Required by: project :app

Para resolver este error, debe especificar qué tipo de compilación de "mylibrary" el complemento de Android debe coincidir con el tipo de compilación "provisional" de la aplicación. Puede hacer esto con la propiedad buildTypeMatching en el archivo build.gradle de la aplicación, como se muestra a continuación:

// Add the following to the consumer''s build.gradle file. android { ... // Tells the Android plugin to use a library''s ''debug'' build type // when a ''staging'' build type is not available. You can include // additional build types, and the plugin matches ''staging'' to the // first build type it finds from the one''s you specify. That is, // if ''mylibrary'' doesn''t include a ''debug'' build type either, the // plugin matches ''staging'' with the producer''s ''release'' build type. buildTypeMatching ''staging'', ''debug'', ''release'' }

Agregar buildTypeMatching lo arregló para mí sin crear tipos innecesarios en mi biblioteca


Google agregó más instrucciones sobre cómo resolverlo: resuelva errores de compilación relacionados con la coincidencia de dependencias

Causa del error de compilación:

Su aplicación incluye un tipo de compilación que no depende de una dependencia de biblioteca.

Por ejemplo, su aplicación incluye un tipo de compilación "provisional", pero una dependencia incluye solo un tipo de compilación "depurar" y "liberar".

Tenga en cuenta que no hay ningún problema cuando una dependencia de la biblioteca incluye un tipo de compilación que su aplicación no incluye. Esto se debe a que el complemento simplemente nunca solicita ese tipo de compilación de la dependencia.

Resolución

Use matchFallbacks para especificar coincidencias alternativas para un tipo de compilación determinado, como se muestra a continuación:

// In the app''s build.gradle file. android { buildTypes { debug {} release {} staging { // Specifies a sorted list of fallback build types that the // plugin should try to use when a dependency does not include a // "staging" build type. You may specify as many fallbacks as you // like, and the plugin selects the first build type that''s // available in the dependency. matchingFallbacks = [''debug'', ''qa'', ''release''] } } }


Hoy también tuve el mismo problema después de migrar a Android Studio 3. El problema es que el gradle no puede resolver ciertas bibliotecas debido a un problema de red. Las razones pueden ser varias. Si trabaja detrás del proxy, debe agregar los parámetros del proxy en el archivo gradle.properties:

systemProp.http.proxyHost=<proxy_host> systemProp.http.proxyPort=<proxy_port systemProp.https.proxyHost=<proxy_host> systemProp.https.proxyPort=<proxy_port>

En mi caso tuve un problema más. Mi empresa utiliza el certificado SSL autofirmado, por lo que la conexión SSL tuvo algún problema. Si lo mismo se aplica también a usted, puede configurar el parámetro nuevamente en el archivo gradle.properties de la siguiente manera:

org.gradle.jvmargs=-Djavax.net.ssl.trustStore="/usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts" -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.keyStorePassword=changeit

Para ser más claro, puede hacer clic en el enlace "Mostrar detalles" en el registro de mensajes en Android Studio. Este registro será más útil para decidir cuál es el verdadero problema.