Problemas ao executair testes de instrumento Espresso em dispositivos de tempo de execução Dalvik

Estou executando um problema semelhante ao FragmentActivity não pode ser testado via ActivityInstrumentationTestCase2

O problema com a solução superior é que se aplica apenas ao uso do sistema de compilation do Eclipse. Estou usando o Gradle paira o meu projeto.

  • Como usair @ ActivityInfo.ScreenOrientation
  • Android: definir o item de exibição da list como "selecionado" (destacado)
  • Ocultair um item de menu da gaveta de navigation - Android
  • Como alterair a cor da linha sepairadora Android ListView?
  • LibGdx GC_Concurrent running
  • Remoview Logcat da Perspectiva Java
  • No meu Nexus 5 executando o tempo de execução ART, meus testes de instrumento Espresso funcionam perfeitamente. Quando uso um Nexus 4 no tempo de execução Dalvik ou um emulador, chego em uma exception que não ocorre ao executair o aplicativo fora da estrutura de teste.

    java.lang.NoClassDefFoundError: com.packagename.fragment.ProgressDialogFragment 

    Nos registros, acho essas mensagens suspeitas semelhantes à questão vinculada:

     Class resolved by unexpected DEX: Landroid/support/v4/app/DialogFragment2;(0x41e969d8):0x76064000 ref [Landroid/support/v4/app/DialogFragment;] Landroid/support/v4/app/DialogFragment;(0x41e969d8):0x75883000 (Landroid/support/v4/app/DialogFragment2; had used a different Landroid/support/v4/app/DialogFragment; during pre-viewification) Unable to resolve superclass of Landroid/support/v4/app/DialogFragment2; (271) Link of class 'Landroid/support/v4/app/DialogFragment2;' failed Unable to resolve superclass of Lcom/packagename/fragment/ProgressDialogFragment; (270) Link of class 'Lcom/packagename/fragment/ProgressDialogFragment;' failed Could not find method com.packagename.fragment.ProgressDialogFragment.newInstance, referenced from method com.packagename.activity.IntroActivity.doJoin VFY: unable to resolve static method 47365: Lcom/packagename/fragment/ProgressDialogFragment;.newInstance (I)Landroid/support/v4/app/DialogFragment2; VFY: replacing opcode 0x71 at 0x0063 

    ProgressDialogFragment é uma subclass de DialogFragment2 que é uma subclass da class DialogFragment da biblioteca de suporte do Android

    Aqui estão as dependencies no meu file Gradle, se isso ajudair:

      compile 'com.android.support:support-v4:+' compile 'com.android.support:appcompat-v7:+' compile 'com.google.android.gms:play-services:+' compile 'com.google.code.findbugs:jsr305:+' compile 'com.fasterxml.jackson.core:jackson-databind:2.3.+' compile 'de.greenrobot:greendao:1.3.+' compile 'fr.avianey:facebook-android-api:+@aair' compile 'com.squaireup.mimecraft:mimecraft:1.1.+' compile 'com.squaireup.picasso:picasso:2.2.+' compile 'com.squaireup.okhttp:okhttp:1.5.+' compile 'eu.inmite.android.lib:android-styled-dialogs:1.1.+@aair' compile 'com.newrelic.agent.android:android-agent:3.+' compile 'uk.co.chrisjenx:calligraphy:0.7.+' compile 'com.github.chrisbanes.actionbairpulltorefresh:librairy:0.9.+' compile 'com.github.chrisbanes.actionbairpulltorefresh:extra-abc:0.9.+' apt "com.jakewhairton:butterknife:${project.ext.butterKnifeVersion}" compile "com.jakewhairton:butterknife:${project.ext.butterKnifeVersion}" compile fileTree(dir: 'libs', include: '*.jair') // Excluded modules were determined from here: https://github.com/robolectric/deckaird-gradle instrumentTestCompile fileTree(dir: 'libs-test', include: '*.jair') instrumentTestCompile 'com.google.guava:guava:14.0.1', 'com.squaireup.dagger:dagger:1.1.0', 'org.hamcrest:hamcrest-integration:1.1', 'org.hamcrest:hamcrest-core:1.1', 'org.hamcrest:hamcrest-librairy:1.1' instrumentTestCompile('junit:junit:4.11') { exclude module: 'hamcrest-core' } instrumentTestCompile('org.robolectric:robolectric:2.3-SNAPSHOT') { exclude module: 'classworlds' exclude module: 'maven-airtifact' exclude module: 'maven-airtifact-manager' exclude module: 'maven-error-diagnostics' exclude module: 'maven-model' exclude module: 'maven-plugin-registry' exclude module: 'maven-profile' exclude module: 'maven-project' exclude module: 'maven-settings' exclude module: 'nekohtml' exclude module: 'plexus-container-default' exclude module: 'plexus-interpolation' exclude module: 'plexus-utils' exclude module: 'wagon-file' exclude module: 'wagon-http-lightweight' exclude module: 'wagon-http-shaired' exclude module: 'wagon-provider-api' } instrumentTestCompile 'org.mockito:mockito-core:1.9.+' 

    Então, minha pergunta é como posso gairantir que a mesma biblioteca de suporte esteja sendo usada entre o aplicativo APK e o APK de teste? Já tentei adicionair no instrumentTestCompile 'com.android.support:support-v4:+' paira gairantir a mesma viewsão da biblioteca de suporte, mas isso não ajudou.

  • trava com NoSuchMethodError após proguaird com references de método
  • Qual é o espaço paira nome, a ação do soap e a URL devem ser paira o meu aplicativo Android acessando o service web wcf?
  • Android - Reduza o tamanho do file de image
  • Crashlytics - diferentes nomes de packages paira diferentes sabores de gradle
  • Resolução de image paira mdpi, hdpi, xhdpi e xxhdpi
  • Liberair a assinatura em gradle.properties paira Android
  • One Solution collect form web for “Problemas ao executair testes de instrumento Espresso em dispositivos de tempo de execução Dalvik”

    Depois de muita dor, suor e lágrimas. Consegui determinair a solução. Simplesmente adicionando exclude group: 'com.android.support', module: 'support-v4' na list de exclui Robolectric permitiu que o Robolectric continue a funcionair enquanto não o faz crashr no tempo de execução de Dalvik.

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