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

upgrade to dagger 1.2 #42

Closed
GoogleCodeExporter opened this issue Jun 29, 2015 · 13 comments
Closed

upgrade to dagger 1.2 #42

GoogleCodeExporter opened this issue Jun 29, 2015 · 13 comments

Comments

@GoogleCodeExporter
Copy link

Please upgrade to dagger 1.2
Even with the unbundled jars it does not seem to be possible to test with 
espresso when an android app already is using Dagger 1.2. itself

What steps will reproduce the problem?
1. build an android app with dagger 1.2
2. build with gradle with the unbundled jars as shown here
http://stackoverflow.com/questions/19646529/using-android-gradle-dagger-to-run-i
nstrumenttests
(except for dagger 1.2 instead of dagger 1.1)

What is the expected output? What do you see instead?

You will get IllegalAccessErrors on device when the application tries to create 
the dagger object graph

It works with normal instrumentation tests (without Espresso) so it is related 
to Espresso

When building the app with older Dagger 1.1 everything works fine


What version of the product are you using? On what operating system?
espresso 1.1
dagger 1.2

Please provide any additional information below.

Original issue reported on code.google.com by dpreuss...@googlemail.com on 14 Jan 2014 at 9:53

@GoogleCodeExporter
Copy link
Author

For completeness, please share the full stack trace of IllegalAccessError(s) 
you're seeing when trying with the unbundled setup.

Original comment by vale...@google.com on 14 Jan 2014 at 7:42

  • Changed state: Accepted

@GoogleCodeExporter
Copy link
Author

Please update Espresso to work with Dagger 1.2.

Original comment by jmulia...@gmail.com on 21 Jan 2014 at 1:44

@GoogleCodeExporter
Copy link
Author

here is the stacktrace and it shows what's the problem. There seems to be some 
internal changes in dagger that made it incompatible with 1.1 builds:

01-21 09:58:13.143: I/TestRunner(2923): failed: 
testEnterSomeValues(com.groupon.merchant.redemption.RedeemActivityTest)
01-21 09:58:13.143: I/TestRunner(2923): ----- begin exception -----
01-21 09:58:13.143: I/TestRunner(2923): java.lang.NoSuchMethodError: 
dagger.internal.ModuleAdapter.<init>
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.GraphHolder$EspressoModule$$M
oduleAdapter.<init>(GraphHolder$EspressoModule$$ModuleAdapter.java:17)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.Class.newInstanceImpl(Native Method)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.Class.newInstance(Class.java:1130)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.Loader.instantiate(Loader.java:84)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.FailoverLoader$1.create(FailoverLoader.java:42)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.FailoverLoader$1.create(FailoverLoader.java:40)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.Memoizer.get(Memoizer.java:56)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:57)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.Modules.loadModules(Modules.java:40)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:166)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:135)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.ObjectGraph.create(ObjectGraph.java:127)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.GraphHolder.graph(GraphHolder
.java:32)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.Espresso.espressoGraph(Espres
so.java:36)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.Espresso.onView(Espresso.java
:51)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.groupon.merchant.redemption.RedeemActivityTest.testEnterSomeValues(RedeemAct
ivityTest.java:18)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.reflect.Method.invokeNative(Native Method)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.reflect.Method.invoke(Method.java:525)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTes
tCase2.java:192)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestCase.runBare(TestCase.java:134)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestResult$1.protect(TestResult.java:115)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestResult.runProtected(TestResult.java:133)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestResult.run(TestResult.java:118)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestCase.run(TestCase.java:124)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:55
4)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunne
r.onStart(GoogleInstrumentationTestRunner.java:167)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
01-21 09:58:13.143: I/TestRunner(2923): ----- end exception -----
01-21 09:58:13.143: I/TestRunner(2923): finished: 
testEnterSomeValues(com.groupon.merchant.redemption.RedeemActivityTest)

Original comment by dpreuss...@googlemail.com on 21 Jan 2014 at 10:06

@GoogleCodeExporter
Copy link
Author

Is it possible to get an ETA of this? Thanks. 

Original comment by lyfort...@gmail.com on 27 Feb 2014 at 11:51

@GoogleCodeExporter
Copy link
Author

Any news about ETA? Thnaks!

Original comment by d2l.qamo...@gmail.com on 19 Mar 2014 at 3:22

@GoogleCodeExporter
Copy link
Author

I'd like to point out that this : 
https://github.com/JakeWharton/double-espresso works with gradle for us. With 
dagger 1.2 and no extra hacks.

Original comment by aagaa...@gmail.com on 19 Mar 2014 at 5:59

@GoogleCodeExporter
Copy link
Author

Anyone has a workaround for this?

Original comment by dnkoutso@gmail.com on 24 Apr 2014 at 11:25

@GoogleCodeExporter
Copy link
Author

https://github.com/JakeWharton/double-espresso :)

Original comment by aagaa...@gmail.com on 25 Apr 2014 at 6:42

@GoogleCodeExporter
Copy link
Author

For those that want Espresso and Robolectric, Jake Wharton's double-espresso 
does not work. So I recompiled the current master of espresso against Dagger 
1.2.1 and published the Maven-ready artifacts here: 
https://github.com/tommyd3mdi/mvn

Original comment by m...@thomaskeller.biz on 5 Jun 2014 at 1:48

@GoogleCodeExporter
Copy link
Author

This (https://github.com/tommyd3mdi/mvn) isn't working for me. Attempting to 
access https://raw.githubusercontent.com/tommyd3mdi/mvn/master results in a 400 
error. 

Double-espresso isn't working for me. I'm not able to exclude Espresso tests 
from my Robolectric run and thus compilation errors ensue. 

Original comment by gloe...@weddingwire.com on 6 Oct 2014 at 6:04

@GoogleCodeExporter
Copy link
Author

@gloe...

The latter is the maven repository URL, there is no whatsoever directory index 
page expected. Just add it as additional repository location as stated on the 
project page.

Original comment by m...@thomaskeller.biz on 7 Oct 2014 at 8:05

@GoogleCodeExporter
Copy link
Author

Hm... I'll have to take another look. I thought I followed the instructions, 
and it didn't work. AS said it couldn't find the lib. Very possible I had 
something else going on. 

Original comment by gloe...@weddingwire.com on 7 Oct 2014 at 12:52

@GoogleCodeExporter
Copy link
Author

Fixed in Espresso 2.0

Original comment by vale...@google.com on 20 Dec 2014 at 4:33

  • Changed state: Fixed

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

No branches or pull requests

1 participant