gurehbgui
gurehbgui

Reputation: 14684

Instrumentation run failed due to 'Process crashed.'

I wanted to run the following test:

package com.xxx.yyy;

import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.*;

/**
 * Instrumented test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();

        assertEquals("com.xxx.yyy", appContext.getPackageName());
    }
}

But I get the error in the console:

$ adb shell am instrument -w -r   -e debug false -e class 'com.xxx.yyy.ExampleInstrumentedTest' com.xxx.yyy.test/android.support.test.runner.AndroidJUnitRunner
Client not ready yet..
Started running tests
Test running failed: Instrumentation run failed due to 'Process crashed.'
Empty test suite.

I can not figgure out why its not working.

Here is my gradle file:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

apply plugin: 'org.greenrobot.greendao' // das kann dann später weg
//apply plugin: 'kotlin-kapt' // if using Kotlin
//apply plugin: 'io.objectbox'


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.xxx.yyy"
        minSdkVersion 21
        targetSdkVersion 28    
        versionCode 130
        versionName "1.3.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

greendao {
    schemaVersion 4
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.vectordrawable:vectordrawable:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
    implementation 'org.greenrobot:greendao:3.2.2'
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.google.firebase:firebase-ads:15.0.1'
    testImplementation 'junit:junit:4.12'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test:rules:1.0.2'
}

apply plugin: 'com.google.gms.google-services'

Any suggestions?

Upvotes: 81

Views: 51091

Answers (10)

DrMaxB
DrMaxB

Reputation: 650

I was getting this error while trying to debug an AndroidJUnit4 test. Run Test worked but Debug Test was throwing this error. I read that it may be related to this issue. I resolved this error by going to "Edit Configurations" on Android Studio, then "All Tests", Select "Debugger" and set to "Java Only".

Upvotes: 1

XccX
XccX

Reputation: 91

androidTestImplementation "androidx.test.espresso:espresso-core:3.3.0"
androidTestImplementation "androidx.test:runner:1.3.0"
androidTestImplementation "androidx.test:core:1.3.0"
androidTestImplementation "androidx.test.ext:junit:1.1.2"
androidTestImplementation "androidx.test:rules:1.3.0"

except for the androidx.test.runner.AndroidJunitRunner config, please also check the dependency. The above code worked for me.

Upvotes: 9

prateek
prateek

Reputation: 508

When I checked logcat, in my case it was OOM so I increased my emulator's heap and RAM size generously and it worked like a charm.

Upvotes: 0

Suraj Vaishnav
Suraj Vaishnav

Reputation: 8305

For me, I was working with runtime permission and revoking the permission (tried adb commands and uiAutomation.revokeRuntimePermission) caused this issue, as an alternate approach, I used Android Test Orchestrator, that seems to be working great so far.

Upvotes: 0

Muz
Muz

Reputation: 5980

Generally you'd want the whole suite to match at once: https://developer.android.com/jetpack/androidx/releases/test

So for example, the latest as of writing is

Core 1.4.0
Espresso 3.4.0
Intents 3.4.0
JUnit 1.1.3
Monitor 1.4.0
Orchestrator 1.4.0
Runner 1.4.0
Rules 1.4.0
Truth 1.4.0
Test Services 1.4.0

Upvotes: 1

chikadance
chikadance

Reputation: 4167

I got the error:

Test running failed: Instrumentation run failed due to 'Process crashed.'

In my case, the android test console only showed the error above without any details.

But in the logcat, the full error was shown. In my case, I forgot to add the AdMob app_id in AndroidManifest.xml

So always remember to check the logcat for more error details!

Upvotes: 93

CoolMind
CoolMind

Reputation: 28793

This error appeared because I changed testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" to testInstrumentationRunner "androidx.test.ext.junit.runners.AndroidJUnit4" in build.gradle. In LogCat I saw:

java.lang.RuntimeException: Unable to instantiate instrumentation ComponentInfo{com.example.debug.test/androidx.test.ext.junit.runners.AndroidJUnit4}: java.lang.ClassNotFoundException: Didn't find class "androidx.test.ext.junit.runners.AndroidJUnit4" on path: DexPathList[[zip file ...

Upvotes: 0

musterjunk
musterjunk

Reputation: 341

So I had the same symptoms but after making all these changes I found that the following config in my project build.gradle file that was an issue

buildTypes{
     debug {
        debuggable true
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

seems that minifyEnable and shrinkResources are behaving differently after the upgrade to androidx, could have happened earlier but I just realized it now. Commenting out the lines fixed my No Tests Found Issues.

buildTypes{
     debug {
        debuggable true
        //minifyEnabled true
        //shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

Upvotes: 5

Izzy Stannett
Izzy Stannett

Reputation: 252

I got the same error after updating JUnit4 from:

androidTestImplementation 'junit:junit:4.12

to

androidTestImplementation 'junit:junit:4.13

The error went away when I downgraded back to:

androidTestImplementation 'junit:junit:4.12

Upvotes: 3

gurehbgui
gurehbgui

Reputation: 14684

Found the solution by myself. I updated to AndroidX, therefor I needed also to update my build.gradle file from:

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

to

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Upvotes: 113

Related Questions