Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Appium Espresso VectorDrawableCompat #535

Open
winterrmute opened this issue Jan 16, 2020 · 7 comments
Open

Appium Espresso VectorDrawableCompat #535

winterrmute opened this issue Jan 16, 2020 · 7 comments

Comments

@winterrmute
Copy link

I am trying to test my application, but I can´t get it working. I am looking for solution for long time but unfortunately with no success. Maybe you can solve my problem.

I will show you my config files, my test class and the log output, maybe someone will find the solution for that.

Build.gradle (the android app)

apply plugin: 'com.android.application'

android {
    android {
        lintOptions {
            abortOnError false
        }
    }
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.wintermute.gmassistant"
        minSdkVersion 27
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        vectorDrawables.generatedDensities = []
    }
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.appcompat:appcompat:1.1.0'

    //lombok
    implementation 'org.projectlombok:lombok:1.18.10'
    implementation 'com.google.android.material:material:1.0.0'
    annotationProcessor 'org.projectlombok:lombok:1.18.10'

    //REST Client
    implementation 'com.android.volley:volley:1.1.1'

    //color picker
    implementation 'com.github.skydoves:colorpickerpreference:2.0.0'

    //Guava
    implementation 'com.google.guava:guava:28.1-android'

    testImplementation 'junit:junit:4.12'
    testImplementation 'org.hamcrest:hamcrest-library:2.2'

    androidTestImplementation 'junit:junit:4.12'

    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'

    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

Test.class

public class TestApp
{
    private WebDriver driver;

public void setUp() throws MalformedURLException
    {
        String apkPath = new File(getClass().getClassLoader().getResource("GmAssistant.apk").getFile()).getPath();

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
        capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ESPRESSO);
        capabilities.setCapability("showGradleLog", true);
        capabilities.setCapability(MobileCapabilityType.APP, apkPath);

        driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723"), capabilities);
        AppiumDriver app = new AppiumDriver(capabilities);
        app.launchApp();
    }
}

Log output

Proxying [POST /session] to [POST http://localhost:8300/session] with body: {"capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","showGradleLog":true,"app":"/home/wintermute/usr/dev/workspace/java/IntegrationTestsGmAssistant/build/resources/main/GmAssistant.apk","automationName":"Espresso","deviceName":"Android Emulator","platformVersion":"9"},"platformName":"android","showGradleLog":true,"app":"/home/wintermute/usr/dev/workspace/java/IntegrationTestsGmAssistant/build/resources/main/GmAssistant.apk","automationName":"Espresso","deviceName":"emulator-5554","platformVersion":"9","deviceUDID":"emulator-5554","appPackage":"com.wintermute.gmassistant","appWaitPackage":"com.wintermute.gmassistant","appActivity":"com.wintermute.gmassistant.GmAssistant","appWaitActivity":"com.wintermute.gmassistant.GmAssistant"}],"alwaysMatch":{}}}
[debug] [Espresso] [Instrumentation] [STDOUT] io.appium.espressoserver.EspressoServerRunnerTest:
[debug] [Espresso] [Instrumentation] [STDOUT] Process crashed while executing startEspressoServer(io.appium.espressoserver.EspressoServerRunnerTest):
[debug] [Espresso] [Instrumentation] [STDOUT] java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:756)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:260)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at com.wintermute.gmassistant.GmAssistant.onCreate(GmAssistant.java:23)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.Activity.performCreate(Activity.java:7136)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.Activity.performCreate(Activity.java:7127)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:702)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.os.Handler.dispatchMessage(Handler.java:106)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.os.Looper.loop(Looper.java:193)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.main(ActivityThread.java:6669)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at java.lang.reflect.Method.invoke(Native Method)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[debug] [Espresso] [Instrumentation] [STDOUT]
[debug] [Espresso] [Instrumentation] [STDOUT] Process crashed while executing startEspressoServer(io.appium.espressoserver.EspressoServerRunnerTest):
[debug] [Espresso] [Instrumentation] [STDOUT] java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wintermute.gmassistant/com.wintermute.gmassistant.GmAssistant}: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.os.Handler.dispatchMessage(Handler.java:106)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.os.Looper.loop(Looper.java:193)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.main(ActivityThread.java:6669)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at java.lang.reflect.Method.invoke(Native Method)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[debug] [Espresso] [Instrumentation] [STDOUT] Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:756)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:260)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at com.wintermute.gmassistant.GmAssistant.onCreate(GmAssistant.java:23)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.Activity.performCreate(Activity.java:7136)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.Activity.performCreate(Activity.java:7127)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:702)
[debug] [Espresso] [Instrumentation] [STDOUT] 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
[debug] [Espresso] [Instrumentation] [STDOUT] 	... 11 more
@imurchie
Copy link
Contributor

Does the app run manually?

@winterrmute
Copy link
Author

winterrmute commented Jan 16, 2020

Yes, the app runs fine and espresso tests works like a charm when ran as instrumentation test.

@mykola-mokhnach
Copy link
Contributor

Try #449 (comment)

@winterrmute
Copy link
Author

Still no luck

@Nadeembhat
Copy link

Nadeembhat commented Jan 31, 2020

I was using Api level 28 but after migrated my whole project to androidx i am getting issue while i install my app , gradle is build successfully but app is not installing showing me an error
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.packagename/com.app.packagename.view.MainActivityView}: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2345) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2407) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5280) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758) Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat. at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:756) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196) at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86) at android.support.v7.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:260) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:182) at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520) at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) at in.stc.ievince.view.MainActivityView.onCreate(MainActivityView.java:264) at android.app.Activity.performCreate(Activity.java:6222) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)

@Nadeembhat
Copy link

it gets resolved now , i was using leatest gradel plugin 3.5.3 ,so after down to 3.5.2 it gets resolved
But my suggestion is to use latest gradle plugin

@Tommos0
Copy link

Tommos0 commented Aug 17, 2020

#449 (comment) fixed it for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants