Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Robolectric soporta el nivel API?

Tengo una prueba que me gustaría ejecutar con Robolectric, yo uso el 2.3-SNAPSHOT como mi APP utiliza el ActionbarCompat i necesario para utilizar 2.3-SNAPSHOT versión como Robolectric no pudo encontrar los temas de AppCompat antes. Así que configuro el Classpath en Eclipse y termino con esto:

java.lang.UnsupportedOperationException: Robolectric does not support API level 9, sorry! at org.robolectric.SdkConfig.<init>(SdkConfig.java:24) at org.robolectric.RobolectricTestRunner.pickSdkVersion(RobolectricTestRunner.java:288) at org.robolectric.RobolectricTestRunner.getEnvironment(RobolectricTestRunner.java:264) at org.robolectric.RobolectricTestRunner.access$100(RobolectricTestRunner.java:57) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:186) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:172) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

El Manifiesto de mi Proyecto de Prueba es así:

  • ¿La aplicación no se muestra en admob al intentar vincular?
  • Cómo detener a Eclipse de intentar ejecutar archivos XML?
  • Cómo configurar el valor predeterminado del widget switch en android
  • TransformClassesAndResourcesWithProguardForRelease FALLA
  • Java terminado con valor de salida distinto de cero 2 - Android Gradle
  • Cómo compartir una sola fuente de biblioteca en varios proyectos
  •  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.vendor.test" android:versionCode="1" android:versionName="1.0"> <application> <uses-library android:name="android.test.runner" /> </application> <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.vendor" /> </manifest> 

    Me quejo siempre sobre el nivel de API, no importa lo que uso.

    Alguien tiene este trabajo?

  • DoubleTap en android
  • Radiogrupo Android, divisor entre los botones de radio
  • Error: Error en la ejecución de la tarea ': app: clean'. No se puede eliminar el archivo
  • ¿Qué tamaño debe xhdpi lanzar iconos ser?
  • Color logcat en el estudio android por colorpid
  • "Comprobar actualización" no funciona en el android studio
  • 3 Solutions collect form web for “¿Robolectric soporta el nivel API?”

    Actualización: La anotación es ahora @Config(sdk = 18) (o @Config(sdk = Build.VERSION_CODES.JELLY_BEAN_MR2) ) y el archivo de propiedades mencionado en el enlace ahora es robolectric.properties .

    Original Answer: Puede utilizar la anotación @Config para que Robolectric emule una versión de SDK. Usted puede poner esto:

     import org.robolectric.annotation.Config; @Config(emulateSdk = 18) // now @Config(sdk = 18) as of Robolectric 3.0 @RunWith(RobolectricTestRunner.class) public class SomeTest ... 

    Esto también es posible utilizando un archivo como se menciona aquí

    No está seguro de lo que significa para sus pruebas específicas de KitKat, pero al menos las otras deberían funcionar.

    En caso de que la gente como yo, sigue visitando el enlace para el error similar,

    @Config(emulateSdk = ) no funciona ahora. Su cambiado a sdk–
    @Config(constants = BuildConfig.class, sdk=21)

    Para mí, estaba recibiendo error con la versión de destino 22,

     java.lang.UnsupportedOperationException: Robolectric does not support API level 22 

    Y así lo emulaba a 21.

    Según SdkConfig.java , Roboeléctrico sólo admite las siguientes versiones / niveles de API:

     SUPPORTED_APIS.put(Build.VERSION_CODES.JELLY_BEAN, new SdkVersion("4.1.2_r1", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.JELLY_BEAN_MR1, new SdkVersion("4.2.2_r1.2", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.JELLY_BEAN_MR2, new SdkVersion("4.3_r2", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.KITKAT, new SdkVersion("4.4_r1", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.LOLLIPOP, new SdkVersion("5.0.0_r2", "0")); 

    ¿Estás seguro de que lo has probado?

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.