Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

336
Vistas
Referencia no resuelta de GrantPermissionRule

Estoy usando Android Studio para crear una aplicación con kotlin. Estoy tratando de realizar una prueba unitaria de mi clase MainActivity y, dado que uso la API 28, necesito otorgar permisos para ejecutar las pruebas unitarias. Coloqué @get:Rule var allowRule = GrantPermissionRule.grant(android.Manifest.permission.RECORD_AUDIO) en la parte superior de mi clase de prueba, pero Android Studio me dice que GrantPermissionRule es una referencia sin resolver. Mi código está abajo.

Clase de actividad principal:

 class MainActivity : AppCompatActivity(), MediaPlayer.OnCompletionListener { lateinit var recorder: MediaRecorder lateinit var player: MediaPlayer lateinit var file: File lateinit var button1: Button lateinit var button2: Button lateinit var button3: Button lateinit var tv1: TextView // coding180.com override fun onCreate(savedInstanceState: Bundle?) { // call the super class onCreate to complete the creation of activity // like the view hierarchy super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { getPermissionToRecordAudio() } tv1 = findViewById(R.id.tv1) as TextView button1 = findViewById(R.id.btnStart) as Button button2 = findViewById(R.id.btnStop) as Button button3 = findViewById(R.id.btnPlay) as Button ... }

Clase de prueba:

 @RunWith(RobolectricTestRunner::class) class MainActivityTest { @get:Rule var permissionRule = GrantPermissionRule.grant(android.Manifest.permission.RECORD_AUDIO) lateinit var testMainActivity: MainActivity @Before fun setup() { testMainActivity = MainActivity() } @Test @Throws(Exception::class) fun onCreateTest() { //Activity variables val intent = Intent() val bundle = Bundle() intent.putExtras(bundle) val controller = Robolectric.buildActivity(MainActivity::class.java, intent).create() val activity = controller.get() as Activity //Start activity controller.start() //Asserts assertFalse(activity.isFinishing) }

No he podido encontrar a nadie más que tenga este problema. ¿Alguien sabe por qué Android Studio no reconoce GrantPermissionRule y cómo solucionarlo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su código se ve bien, agregue

 androidTestImplementation 'com.android.support.test:rules:1.0.2'

A su build.gradle

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda