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

Instrumentation crashes when no class is directly specified. #3

Closed
nakhbari opened this issue Feb 7, 2018 · 2 comments
Closed

Instrumentation crashes when no class is directly specified. #3

nakhbari opened this issue Feb 7, 2018 · 2 comments

Comments

@nakhbari
Copy link

nakhbari commented Feb 7, 2018

adb shell am instrument -w org.kivy.android/android.support.test.runner.AndroidJUnitRunner

org.kivy.android.ExampleInstrumentedTest:
Error in launchAirtestAndPoco(org.kivy.android.ExampleInstrumentedTest):
junit.framework.AssertionFailedError: =================script error start================
Traceback (most recent call last):
  File "copy_app\main.py", line 43, in test
  File "/data/data/org.kivy.android/files/app/test_script.air/test_script.py", line 25, in <module>
    touch(Template(r"tpl1499240443959.png", record_pos=(0.22, -0.165), resolution=(2560, 1536)))
  File "copy_app\airtest\utils\logwraper.py", line 73, in wrapper
  File "copy_app\airtest\core\helper.py", line 115, in wrapper
  File "copy_app\airtest\core\api.py", line 218, in touch
  File "copy_app\airtest\utils\logwraper.py", line 73, in wrapper
  File "copy_app\airtest\core\cv.py", line 58, in loop_find
TargetNotFoundError: 'Picture Template(tpl1499240443959.png) not found in screen'
=================script error end================

	at junit.framework.Assert.fail(Assert.java:50)
	at junit.framework.Assert.assertTrue(Assert.java:20)
	at org.kivy.android.ExampleInstrumentedTest.launchAirtestAndPoco(ExampleInstrumentedTest.java:39)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
	at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2068)


Time: 28.065
There were 2 failures:
1) launchAirtestAndPoco(org.kivy.android.ExampleInstrumentedTest)
junit.framework.AssertionFailedError: =================script error start================
Traceback (most recent call last):
  File "copy_app\main.py", line 43, in test
  File "/data/data/org.kivy.android/files/app/test_script.air/test_script.py", line 25, in <module>
    touch(Template(r"tpl1499240443959.png", record_pos=(0.22, -0.165), resolution=(2560, 1536)))
  File "copy_app\airtest\utils\logwraper.py", line 73, in wrapper
  File "copy_app\airtest\core\helper.py", line 115, in wrapper
  File "copy_app\airtest\core\api.py", line 218, in touch
  File "copy_app\airtest\utils\logwraper.py", line 73, in wrapper
  File "copy_app\airtest\core\cv.py", line 58, in loop_find
TargetNotFoundError: 'Picture Template(tpl1499240443959.png) not found in screen'
=================script error end================

	at junit.framework.Assert.fail(Assert.java:50)
	at junit.framework.Assert.assertTrue(Assert.java:20)
	at org.kivy.android.ExampleInstrumentedTest.launchAirtestAndPoco(ExampleInstrumentedTest.java:39)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
	at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2068)
2) android.support.test.uiautomator.UiAutomatorInstrumentationTestRunner
java.lang.ClassNotFoundException: android.support.test.uiautomator.UiAutomatorInstrumentationTestRunner
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:453)
	at android.support.test.internal.runner.TestLoader.doLoadClass(TestLoader.java:92)
	at android.support.test.internal.runner.TestLoader.loadIfTest(TestLoader.java:113)
	at android.support.test.internal.runner.TestRequestBuilder.loadClassesFromClassPath(TestRequestBuilder.java:801)
	at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:747)
	at android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:354)
	at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:260)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2068)
Caused by: java.lang.ClassNotFoundException: android.support.test.uiautomator.UiAutomatorInstrumentationTestRunner
	at java.lang.VMClassLoader.findLoadedClass(Native Method)
	at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	... 9 more
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/test/InstrumentationTestRunner;
	... 9 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.test.InstrumentationTestRunner" on path: DexPathList[[zip file "/data/app/org.kivy.android-T8mStwGdH9bP50roEk6R5Q==/base.apk"],nativeLibraryDirectories=[/data/app/org.kivy.android-T8mStwGdH9bP50roEk6R5Q==/lib/arm, /system/fake-libs, /data/app/org.kivy.android-T8mStwGdH9bP50roEk6R5Q==/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	... 9 more

FAILURES!!!
Tests run: 1,  Failures: 2

@nakhbari
Copy link
Author

nakhbari commented Feb 9, 2018

I spent some time looking into this. It looks like there is a child dependency on the android.test.InstrumentationTestRunner class that is not being included within the Android APK. I tried a few things but ultimately what solved the issue was to update the gradle dependency

compile 'com.android.support.test:runner:1.0.1'

Might be best to upgrade all dependencies?

@nakhbari
Copy link
Author

I tested this today on the v0.0.3_2018-02-11 build, looks this this has been resolved?

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

1 participant