square / assertj-android

A set of AssertJ helpers geared toward testing Android.
https://square.github.io/assertj-android/
Apache License 2.0
1.58k stars 156 forks source link

java.lang.NoSuchMethodError: org.assertj.core.api.AbstractCharSequenceAssert.doesNotContain(Ljava/lang/CharSequence;) #224

Closed emartynov closed 6 years ago

emartynov commented 6 years ago

I've updated AssertJ core to 3.9.0 and I got one test failing:

        assertThat(viewHolder.date).containsText(" · " + context.getString(R.string.transactions__pending))

(where date it TextView) with the message:

java.lang.NoSuchMethodError: org.assertj.core.api.AbstractCharSequenceAssert.doesNotContain(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;

    at org.assertj.android.api.widget.AbstractTextViewAssert.doesNotContainText(AbstractTextViewAssert.java:601)

I temporarily fixed it but would be nice to update AssertJ core dependency.

JakeWharton commented 6 years ago

Doesn't AssertJ 3 requires Java 8 which makes it prohibitive to use on most Android versions?

On Mon, Jan 15, 2018 at 7:43 AM Eugen Martynov notifications@github.com wrote:

I've updated AssertJ core to 3.9.0 and I got one test failing:

    assertThat(viewHolder.date).containsText(" · " + context.getString(R.string.transactions__pending))

(where date it TextView) with the message:

java.lang.NoSuchMethodError: org.assertj.core.api.AbstractCharSequenceAssert.doesNotContain(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;

at org.assertj.android.api.widget.AbstractTextViewAssert.doesNotContainText(AbstractTextViewAssert.java:601)

I temporarily fixed it but would be nice to update AssertJ core dependency.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/square/assertj-android/issues/224, or mute the thread https://github.com/notifications/unsubscribe-auth/AAEEEaXh_rXpSRZJsuCJ2C3u0SGeGp-Cks5tK0fegaJpZM4ReW_9 .

emartynov commented 6 years ago

Yes, It requires Java 8. We use it with Robolectric.

Should AGP 3.0 modify Java8 bytecode for libraries as well?

JakeWharton commented 6 years ago

It does, but it can't add the missing APIs in the platform that are required so your tests would still only work on API 26+.

On Tue, Jan 16, 2018 at 1:13 AM Eugen Martynov notifications@github.com wrote:

Yes, It requires Java 8. We use it with Robolectric.

Should AGP 3.0 modify Java8 bytecode for libraries as well?

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/square/assertj-android/issues/224#issuecomment-357863434, or mute the thread https://github.com/notifications/unsubscribe-auth/AAEEEV-ybZCHTXJnol3acyxYNVoeAbBMks5tLD4VgaJpZM4ReW_9 .

emartynov commented 6 years ago

Clear. I'm closing the issue now. And thinking about a possible solution like having another artefact that fully compatible with Java8.