¿Cómo puedo conseguir que Gradle para Android encuentre el código de prueba de una biblioteca dentro de otro código de prueba?
Tengo una aplicación de Android con dos capas de biblioteca debajo. Cada biblioteca tiene su propio código de prueba. Me gustaría que el código de prueba de la biblioteca superior extendiera el código de prueba de la biblioteca inferior, pero no puedo averiguar cómo conseguir que Gradle encuentre el código de prueba de la biblioteca inferior (solo encuentra el código de producción).
Mi estructura de archivos se ve así:
- Android con Gradle (Java terminado con valor de salida no nulo 2)
- Problema con la dimensión de sabor de Android Studio 3.0
- Android java.exe terminado con valor de salida no nulo 1
- Versión Gradle y gradle-wrapper.properties
- Cómo instalar el SDK de GMS de Google Play Services en CircleCI
myproject/ + myapp/ + src/ + main/ + java + com/myapp + lib1/ + src/ + main/ + java + com/myapp/lib1 + androidTest + java + com/myapp/lib1/test + lib2/ + src/ + main/ + java + com/myapp/lib2 + androidTest + java + com/myapp/lib2/test
El archivo gradle para la aplicación se ve así:
apply plugin: 'com.android.application' android { ... } dependencies { compile project(':lib2') }
El archivo gradle para lib2 tiene el siguiente aspecto:
apply plugin: 'com.android.library' android { ... } dependencies { compile project(':lib1') }
El archivo gradle para lib1 tiene el siguiente aspecto:
apply plugin: 'com.android.library' android { ... }
Cuando corro "gradle connectedCheck" consigo esto:
... :lib2:generateDebugTestSources UP-TO-DATE :lib2:compileDebugTestJava myproject/lib2/src/androidTest/java/com/myapp/lib2/test/SubClass.java:10: error: package com.myapp.lib1.test does not exist import com.myapp.lib1.test.BaseClass;
He intentado agregar varias líneas de androidTestCompile a la sección de las dependencias del archivo del gradle de lib2, pero ningunas de ellas ayudan.
¿Alguien sabe cómo hacer que esto funcione?
EDIT: Lo siento, no mencioné que también tengo un settings.gradle en la carpeta myproject que se parece a esto:
include ':lib1' include ':lib2' include ':myapp'
- Add Holoeverywhere para proyectar en Android Studio
- Error de ADT que exporta con Gradle
- Gradle segunda generación falla después de modificar styles.xml
- La fusión de manifiesto ha fallado: uses-sdk: minSdkVersion 9 no puede ser menor que la versión L declarada en la biblioteca com.android.support
- A condición de que la dependencia de grado sea AAR no JAR
- Tela Beta y separaciones de APK
- Algunas preguntas sobre Gradle para Android Development
- Creación de Android Gradle con subproyectos
El problema es que su gradle no conoce las conexiones de los módulos myapp, lib1 y lib2.
Intente agregar algunos settings.gradle en módulos que estén utilizando otro. Para su estructura, recomiendo crear archivos gradle adicionales en la raíz:
Por ejemplo en myproject /
Settings.gradle:
rootProject.name = 'myproject' include 'myapp' include 'lib1' include 'lib2'
Y luego escribir gradle.build para todos los módulos donde se aclare el tipo de todo el proyecto por ejemplo oído etc.
También puede conectar módulos por separado.
- Java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV14 en Android Studio
- Genymotion no se inicia (permiso denegado para androvm.gles.first)