Closed michael172849 closed 3 years ago
Can you try running
./gradlew run --args="--Output-outputDir=/tmp_out --Selectors-actionLimit=200"
to see if the same error appears?
I got the same error.
I pushed a change to master.
The problem appears to be that DM is looking for the filename of the parent directory to the output.
Since the directory is / it doesn't have a filename.
Plase have a look at the master branch and see if it works for you.
Assuming everything is working since there was no feedback after the solution
I have successfully built and generated the jar file from the source in a docker container. But when I run it with
java -jar build/libs/droidmate-2-2.0.0-all.jar --Output-outputDir=/tmp_out --Selectors-actionLimit=200
I got this exception.
DroidMate, an automated execution generator for Android apps. Copyright (c) 2012 - 2019 Saarland University This program is free software licensed under GNU GPL v3.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
email: jamrozik@st.cs.uni-saarland.de web: www.droidmate.org 20:07:09.848 [main] INFO API-Command - Bootstrapping DroidMate: building ConfigurationWrapper from args and instantiating objects for ExplorationAPI. 20:07:09.850 [main] INFO API-Command - IMPORTANT: for help on how to configure DroidMate, run it with --help 20:07:10.045 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - memoizedBuildConfiguration(args, fileSystem) available build-tools: 27.0.3 28.0.3 26.0.2 max build tools (28.0.3, 2803) available platforms versions: android-27 android-28 android-23 20:07:10.053 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - Using uiautomator2-daemon.apk located at /tmp_out/temp_extracted_resources/deviceControlDaemon.apk 20:07:10.053 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - Using uiautomator2-daemon-test.apk located at /tmp_out/temp_extracted_resources/deviceControlDaemon-test.apk 20:07:10.054 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - Using monitor.apk located at /tmp_out/temp_extracted_resources/monitor.apk 20:07:10.054 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - Using api_policies.txt located at /tmp_out/temp_extracted_resources/api_policies.txt 20:07:10.055 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - Reading APKs from: /home/ST/droidmate/./apks 20:07:10.067 [main] DEBUG org.droidmate.configuration.ConfigurationBuilder - -------------------------------------------------------------------------------- Working dir: /home/ST/droidmate
JVM arguments: []
Configuration dump:
aaptCommand=/android-sdk/build-tools/28.0.3/aapt adbCommand=/android-sdk/platform-tools/adb apiPoliciesFile=/tmp_out/temp_extracted_resources/api_policies.txt apksDirPath=/home/ST/droidmate/./apks cfg=com.natpryce.konfig.Override@7d8995e coveragePortFile=
deviceSerialNumber=
droidmateOutputDirPath=/tmp_out
droidmateOutputReportDirPath=/tmp_out/report
fileSystem=sun.nio.fs.LinuxFileSystem@130d63be
monitorApk=/tmp_out/temp_extracted_resources/monitor.apk
monitorPortFile=
reportInputDirPath=/home/ST/droidmate
resourceDir=/tmp_out/temp_extracted_resources
uiautomator2DaemonApk=/tmp_out/temp_extracted_resources/deviceControlDaemon.apk
uiautomator2DaemonTestApk=/tmp_out/temp_extracted_resources/deviceControlDaemon-test.apk
End of configuration dump
20:07:10.085 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.DefaultStrategies$actionBasedTerminate$1@93d935ae. 20:07:10.085 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.DefaultStrategies$resetOnAppCrash$1@dafaf2c4. 20:07:10.085 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.DefaultStrategies$allowPermission$1@baf2c408. 20:07:10.085 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.DefaultStrategies$handleAdvertisment$1@38793dce. 20:07:10.085 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.DefaultStrategies$handleTargetAbsence$1@ced167b4. 20:07:10.085 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.DefaultStrategies$intervalReset$1@eab5a9da. 20:07:10.086 [main] INFO org.droidmate.exploration.strategy.ExplorationStrategyPool - Registering strategy org.droidmate.exploration.strategy.widget.RandomWidget@70f9dba4. 20:07:10.098 [main] INFO org.droidmate.api.ExplorationAPI - EXPLORATION start timestamp: Wed Nov 20 20:07:10 UTC 2019 20:07:10.098 [main] INFO org.droidmate.api.ExplorationAPI - Running in Android org.droidmate.configuration.ConfigurationWrapper@2925bf5b.androidApi compatibility mode (api23+ = version 6.0 or newer). Exception in thread "main" java.lang.NullPointerException at org.droidmate.command.ExploreCommand$cleanOutputDir$2.test(ExploreCommand.kt:162) at org.droidmate.command.ExploreCommand$cleanOutputDir$2.test(ExploreCommand.kt:76) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.droidmate.command.ExploreCommand.cleanOutputDir(ExploreCommand.kt:165) at org.droidmate.command.ExploreCommand.access$cleanOutputDir(ExploreCommand.kt:76) at org.droidmate.command.ExploreCommand$execute$2.invokeSuspend(ExploreCommand.kt:92) at org.droidmate.command.ExploreCommand$execute$2.invoke(ExploreCommand.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91) at kotlinx.coroutines.SupervisorKt.supervisorScope(Supervisor.kt:46) at org.droidmate.command.ExploreCommand.execute(ExploreCommand.kt:90) at org.droidmate.api.ExplorationAPI$explore$6.invokeSuspend(ExplorationAPI.kt:183) at org.droidmate.api.ExplorationAPI$explore$6.invoke(ExplorationAPI.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:186) at org.droidmate.api.ExplorationAPI.explore(ExplorationAPI.kt:168) at org.droidmate.api.ExplorationAPI.explore(ExplorationAPI.kt:199) at org.droidmate.api.ExplorationAPI$explore$4.invokeSuspend(ExplorationAPI.kt:150) at org.droidmate.api.ExplorationAPI$explore$4.invoke(ExplorationAPI.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:186) at org.droidmate.api.ExplorationAPI.explore(ExplorationAPI.kt:148) at org.droidmate.api.ExplorationAPI.explore$default(ExplorationAPI.kt:147) at org.droidmate.api.ExplorationAPI$main$1.invokeSuspend(ExplorationAPI.kt:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.kt:116) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:76) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:53) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at org.droidmate.api.ExplorationAPI.main(ExplorationAPI.kt:66)