marathon icon indicating copy to clipboard operation
marathon copied to clipboard

Unable to install on API 26

Open ZakTaccardi opened this issue 3 years ago • 3 comments

here are a couple stacktraces from the endless retry loop. Works on API 28 though


com.malinskiy.marathon.android.exception.InstallException: Error: java.lang.NullPointerException: Attempt to invoke virtual method 'long android.os.storage.StorageManager.getAllocatableBytes(java.io.File, int)' on a null object reference
	at com.malinskiy.marathon.android.AndroidAppInstaller$reinstall$2.invokeSuspend(AndroidAppInstaller.kt:55)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:142)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

com.malinskiy.marathon.exceptions.DeviceSetupException: Error while installing com.example.test on 127.0.0.1:5037:emulator-5578
	at com.malinskiy.marathon.android.AndroidAppInstaller$reinstall$2.invokeSuspend(AndroidAppInstaller.kt:59)
	at (Coroutine boundary.()
	at com.malinskiy.marathon.android.adam.AdamAndroidDevice$prepare$2.invokeSuspend(AdamAndroidDevice.kt:370)
	at com.malinskiy.marathon.execution.device.DeviceActor$initialize$2$1.invokeSuspend(DeviceActor.kt:165)
	at com.malinskiy.marathon.execution.RetryKt.withRetry(Retry.kt:11)
	at com.malinskiy.marathon.execution.device.DeviceActor$initialize$2.invokeSuspend(DeviceActor.kt:162)
Caused by: com.malinskiy.marathon.exceptions.DeviceSetupException: Error while installing com.example.test on 127.0.0.1:5037:emulator-5578
	at com.malinskiy.marathon.android.AndroidAppInstaller$reinstall$2.invokeSuspend(AndroidAppInstaller.kt:59)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:142)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.malinskiy.marathon.android.exception.InstallException: Timeout transferring /Users/tools/jenkins/workspace/Team/Android/app/pr-pipeline/pipeline/lib-implementation/build/outputs/apk/androidTest/debug/lib-implementation-debug-androidTest.apk
	at com.malinskiy.marathon.android.adam.AdamAndroidDevice.installPackage(AdamAndroidDevice.kt:278)
	at com.malinskiy.marathon.android.adam.AdamAndroidDevice$installPackage$1.invokeSuspend(AdamAndroidDevice.kt)
	... 14 common frames omitted
<D.0.0.1:5037:emulator-5578]> terminate 127.0.0.1:5037:emulator-5578
Exception in thread "DeviceMonitor @coroutine#6" com.malinskiy.adam.exception.RequestRejectedException: Unexpected string length: 
	at com.malinskiy.adam.extension.SocketKt.readProtocolString(Socket.kt:106)
	at com.malinskiy.adam.extension.SocketKt$readProtocolString$1.invokeSuspend(Socket.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

Using version 0.7.0

ZakTaccardi avatar Apr 08 '22 19:04 ZakTaccardi

Hi @ZakTaccardi , I just checked sample-app with Marathon 0.7.0 on API 26 and it works.

Device pool omni:
	43 passed, 3 failed, 3 ignored tests
	Failed tests:
		com.example.BeforeTestFailureTest#testThatWillNotSeeTheLightOfDay
		com.example.ConsoleActivityTest#testVmState
		com.example.MainActivityAllureTest#testFailure
	Flakiness overhead: 17766ms
	Raw: 43 passed, 16 failed, 3 ignored, 3 incomplete tests
	Failed tests:
		com.example.BeforeTestFailureTest#testThatWillNotSeeTheLightOfDay failed 1 time(s)
		com.example.ConsoleActivityTest#testVmState failed 3 time(s)
		com.example.MainActivityAllureTest#testFailure failed 3 time(s)
		com.example.MainActivityFlakyTest#testTextFlaky1 failed 1 time(s)
		com.example.MainActivityFlakyTest#testTextFlaky2 failed 1 time(s)
		com.example.MainActivityFlakyTest#testTextFlaky4 failed 2 time(s)
		com.example.MainActivityFlakyTest#testTextFlaky5 failed 2 time(s)
		com.example.MainActivityFlakyTest#testTextFlaky7 failed 1 time(s)
		com.example.MainActivityFlakyTest#testTextFlaky8 failed 2 time(s)
	Incomplete tests:
		com.example.BeforeTestFailureTest#testThatWillNotSeeTheLightOfDay incomplete 3 time(s)
Total time: 0H 2m 19s

Please provide more details about device/emulator. Also it would be nice if you confirm this problem on sample-app.

tagantroy avatar Apr 10 '22 23:04 tagantroy

@ZakTaccardi the error that you're seeing at the top of the stack trace is actually Android OS's exception, not marathon's:

Error: java.lang.NullPointerException: Attempt to invoke virtual method 'long android.os.storage.StorageManager.getAllocatableBytes(java.io.File, int)' on a null object reference

This is a device issue here, please investigate why the device can't install your packages.

Malinskiy avatar Apr 11 '22 08:04 Malinskiy

Please close the issue if there is nothing else here

Malinskiy avatar Sep 16 '22 08:09 Malinskiy

Closing due to inactivity

Malinskiy avatar Feb 01 '23 08:02 Malinskiy