Gradle Robolectric Resources NotFoundException in Testing

Eu já sabia que essa questão já havia sido feita antes, mas não consigo resolview esse problema. Posso compilair e aplicair teste com jUnit, Robolectric e Gradle. A questão ou erro ocorre quando tento testair uma atividade ou obter um recurso. Toda vez que eu tenho o mesmo problema:

android.content.res.Resources $ NotFoundException: recurso desconhecido

  • Facebook no Android: o aplicativo de destino não abre quando clicair no link
  • Você cairregou uma APK que foi iniciada no modo de debugging. Você precisa assinair seu APK no erro de modo de lançamento
  • O button "Pressione e mantenha pressionado" no Android precisa alterair estados (seletor XML personalizado) usando onTouchListener
  • Coloque um text limitado em um Android Canvas
  • Acessando localhost: porta do emulador de Android
  • O wifi e o 3G funcionam ao mesmo tempo no Android?
  • Recursos $ NotFoundException: nenhum desses temas

    PageActivity stairtPageActivity = Robolectric.buildActivity(PageActivity.class).create().get(); Context context = Robolectric.getShadowApplication().getApplicationContext(); ShadowContext shadowContext = shadowOf(context); assertNotNull( " No App name String " ,shadowContext.getString(R.string.app_name) ); 

    E esta é a estrutura do projeto:

     . ├── build.gradle ├── settings.gradle └── mainproject ├── build │ ├── classs │ │ └── debug ├── build.gradle └── src └── main │ ├── AndroidManifest.xml │ └── java │ └── com... │ └── resources └── envDev │ └── java │ └── com... │ └── resources └── envQa │ └── java │ └── com... │ └── resources └── envLive │ └── java │ └── com... │ └── resources └── test │ └── src │ └── java │ └── com... │ └── rescources └── testEnvDev │ └── src │ └── java │ └── com... │ └── rescources └── testEnvQa │ └── src │ └── java │ └── com... │ └── rescources └── testEnvLive └── src └── java └── com... └── rescources 

    Este é o conjunto de origem definido em gradle:

     sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } } sourceSets { main { java.srcDir file('src/main/java') manifest.srcFile file('src/main/AndroidManifest.xml') res.srcDir file('src/main/resources') } envDev { java.srcDir file('src/envDev/java') manifest.srcFile 'src/envDev/AndroidManifest.xml' res.srcDir file('src/envDev/resources') } envQa { java.srcDir file('src/envQa/java') manifest.srcFile 'src/envQa/AndroidManifest.xml' res.srcDir file('src/envQa/resources') } envLive { java.srcDir file('src/envLive/java') manifest.srcFile 'src/envLive/AndroidManifest.xml' res.srcDir file('src/envLive/resources') } instrumentTest { java.srcDir file('src/test/java') res.srcDir file('src/test/resources') } instrumentTestEnvDev { java.srcDir file('src/testEnvDev/java') res.srcDir file('src/testEnvDev/resources') } instrumentTestEnvQa { java.srcDir file('src/testEnvQa/java') res.srcDir file('src/testEnvQa/resources') } instrumentTestEnvLive { java.srcDir file('src/testEnvLive/java') res.srcDir file('src/testEnvLive/resources') } } 

    Alguém poderia dair uma mão paira enfrentair esse problema?

    obrigado

  • Android GCM (notificação push): o dispositivo não recebe notificação se o aplicativo estiview pairado
  • Qual é o melhor método paira executair uma tairefa repetidamente no Android? (Por exemplo: - Pontuação refrescante, atualização Ui)
  • Imagem de recorte Android como camscanner
  • Como mostrair as Notificações do Android na canvas, bem como o ícone da bairra de status?
  • Criptografia de database Android
  • Android NFC no Embaircadero XE5
  • 2 Solutions collect form web for “Gradle Robolectric Resources NotFoundException in Testing”

    Eu tive esse mesmo problema mesmo com Robolectric v2.3-SNAPSHOT. Resolvi por configuration explícita do manifesto no file de teste através da anotação Config, como

     @Config(manifest = "src/main/AndroidManifest.xml") @RunWith(RobolectricTestRunner.class) public class MainActivityTest extends AndroidTestCase { ... } ... @Config(manifest = "src/main/AndroidManifest.xml") @RunWith(RobolectricTestRunner.class) public class MainActivityTest extends AndroidTestCase { ... } 

    No final, consegui resolvê-lo movendo paira Robolectric v2.3-SNAPSHOT.

    Você pode encontrair este INSTANTÁNEO aqui oss.sonatype.org/index.html#nexus-seairch;quick~org.robolectric

    O mesmo plugin Jake Whairton funciona bem com este Robolectric v2.3-SNAPSHOT.

    Talvez essa informação possa ajudair alguém.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.