Comments (14)
Run "pip install pillow". I should update the code to show a better error message with installation instructions when not available.
from screenshot-tests-for-android.
ah it looks like you're not calling ScreenshotRunner.onDestroy() from the test runner. I should make it more obvious when this happens.
from screenshot-tests-for-android.
running pip install image
as recommended here fixes this error but introduces a new one :)
New stacktrace
Incremental java compilation is an incubating feature.
:clean
:app:clean
:app:recordMode
:app:clearScreenshots
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2330Library
:app:prepareComAndroidSupportAppcompatV72330Library
:app:prepareComAndroidSupportDesign2330Library
:app:prepareComAndroidSupportRecyclerviewV72330Library
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareComAndroidSupportSupportV42330Library
:app:prepareComAndroidSupportSupportVectorDrawable2330Library
:app:prepareComJakewhartonTimberTimber412Library
:app:prepareComSquareupLeakcanaryLeakcanaryAndroid131Library
:app:prepareInfoAndroid15NucleusNucleusSupportV7300Library
:app:prepareIoReactivexRxandroid120Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:mergeDebugShaders
:app:compileDebugShaders
:app:generateDebugAssets
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
:app:processDebugManifest
:app:processDebugResources
:app:generateDebugSources
:app:incrementalDebugJavaCompilationSafeguard
:app:compileDebugKotlin
...
:app:compileDebugJavaWithJavac
:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
:app:compileDebugKotlinAfterJava
...
>:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources
:app:prePackageMarkerForDebug
:app:unzipJacocoAgent
:app:transformClassesWithJacocoForDebug
:app:transformClassesWithDexForDebug
Result compacted from 8520.3KiB to 6582.5KiB to save 1937.8KiB
Merged dex #1 (5 defs/15.3KiB)
Merged dex #2 (329 defs/536.4KiB)
Merged dex #3 (182 defs/255.7KiB)
Merged dex #4 (134 defs/303.8KiB)
Merged dex #5 (770 defs/937.2KiB)
Merged dex #6 (17 defs/48.5KiB)
Merged dex #7 (5 defs/9.6KiB)
Merged dex #8 (67 defs/58.3KiB)
Merged dex #9 (37 defs/18.1KiB)
Merged dex #10 (1717 defs/1878.8KiB)
Merged dex #11 (220 defs/251.6KiB)
Merged dex #12 (3 defs/4.1KiB)
Merged dex #13 (333 defs/262.4KiB)
Merged dex #14 (10 defs/7.8KiB)
Merged dex #15 (128 defs/234.4KiB)
Merged dex #16 (6 defs/1.6KiB)
Merged dex #17 (202 defs/134.1KiB)
Merged dex #18 (299 defs/854.9KiB)
Merged dex #19 (8 defs/17.1KiB)
Merged dex #20 (19 defs/10.2KiB)
Merged dex #21 (106 defs/198.5KiB)
Merged dex #22 (33 defs/29.6KiB)
Merged dex #23 (931 defs/763.4KiB)
Merged dex #24 (41 defs/6.5KiB)
Result is 5602 defs/6582.5KiB. Took 1.3s
:app:mergeDebugJniLibFolders
:app:transformNative_libsWithMergeJniLibsForDebug
:app:processDebugJavaRes UP-TO-DATE
:app:transformResourcesWithMergeJavaResForDebug
:app:validateDebugSigning
:app:packageDebug
:app:zipalignDebug
:app:assembleDebug
:app:prepareComAndroidSupportTestEspressoEspressoContrib222Library
:app:prepareComAndroidSupportTestEspressoEspressoCore222Library
:app:prepareComAndroidSupportTestEspressoEspressoIdlingResource222Library
:app:prepareComAndroidSupportTestEspressoEspressoIntents222Library
:app:prepareComAndroidSupportTestExposedInstrumentationApiPublish05Library
:app:prepareComAndroidSupportTestRules05Library
:app:prepareComAndroidSupportTestRunner05Library
:app:prepareComAndroidSupportTestUiautomatorUiautomatorV18212Library
:app:prepareDebugAndroidTestDependencies
:app:compileDebugAndroidTestAidl
:app:processDebugAndroidTestManifest
:app:compileDebugAndroidTestRenderscript
:app:generateDebugAndroidTestBuildConfig
:app:mergeDebugAndroidTestShaders
:app:compileDebugAndroidTestShaders
:app:generateDebugAndroidTestAssets
:app:mergeDebugAndroidTestAssets
:app:generateDebugAndroidTestResValues UP-TO-DATE
:app:generateDebugAndroidTestResources
:app:mergeDebugAndroidTestResources
:app:processDebugAndroidTestResources
:app:generateDebugAndroidTestSources
:app:incrementalDebugAndroidTestJavaCompilationSafeguard
:app:compileDebugAndroidTestKotlin
...
:app:compileDebugAndroidTestJavaWithJavac
:app:compileDebugAndroidTestJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
:app:compileDebugAndroidTestKotlinAfterJava
...
:app:compileDebugAndroidTestNdk UP-TO-DATE
:app:compileDebugAndroidTestSources
:app:prePackageMarkerForDebugAndroidTest
:app:transformClassesWithDexForDebugAndroidTest
...
Result compacted from 7152.9KiB to 5534.2KiB to save 1618.7KiB
Merged dex #1 (63 defs/79.8KiB)
Merged dex #2 (252 defs/277.8KiB)
Merged dex #3 (770 defs/937.2KiB)
Merged dex #4 (2 defs/1.0KiB)
Merged dex #5 (22 defs/37.8KiB)
Merged dex #6 (108 defs/113.8KiB)
Merged dex #7 (27 defs/29.1KiB)
Merged dex #8 (2002 defs/2162.6KiB)
Merged dex #9 (4 defs/4.1KiB)
Merged dex #10 (49 defs/39.5KiB)
Merged dex #11 (84 defs/126.7KiB)
Merged dex #12 (29 defs/39.0KiB)
Merged dex #13 (36 defs/19.8KiB)
Merged dex #14 (38 defs/62.9KiB)
Merged dex #15 (381 defs/515.5KiB)
Merged dex #16 (9 defs/9.6KiB)
Merged dex #17 (45 defs/38.2KiB)
Merged dex #18 (5 defs/2.9KiB)
Merged dex #19 (35 defs/54.8KiB)
Merged dex #20 (333 defs/262.4KiB)
Merged dex #21 (2 defs/15.7KiB)
Merged dex #22 (15 defs/4.9KiB)
Merged dex #23 (34 defs/8.8KiB)
Merged dex #24 (286 defs/238.9KiB)
Merged dex #25 (694 defs/665.8KiB)
Merged dex #26 (37 defs/27.0KiB)
Merged dex #27 (6 defs/11.3KiB)
Result is 5368 defs/5534.2KiB. Took 0.7s
:app:mergeDebugAndroidTestJniLibFolders
:app:transformNative_libsWithMergeJniLibsForDebugAndroidTest
:app:processDebugAndroidTestJavaRes UP-TO-DATE
:app:transformResourcesWithMergeJavaResForDebugAndroidTest
:app:packageDebugAndroidTest
:app:assembleDebugAndroidTest
:app:connectedDebugAndroidTest
:app:createDebugAndroidTestCoverageReport
:app:connectedAndroidTest
:app:pullScreenshots
768 KB/s (8614 bytes in 0.010s)
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/Users/gallal/.gradle/caches/modules-2/files-2.1/com.facebook.testing.screenshot/plugin/0.4.1/95bb67a888bc9791a5b8e3a575c98b38bfd9bc75/plugin-0.4.1.jar/android_screenshot_tests/pull_screenshots.py", line 275, in <module>
File "/Users/gallal/.gradle/caches/modules-2/files-2.1/com.facebook.testing.screenshot/plugin/0.4.1/95bb67a888bc9791a5b8e3a575c98b38bfd9bc75/plugin-0.4.1.jar/android_screenshot_tests/pull_screenshots.py", line 272, in main
File "/Users/gallal/.gradle/caches/modules-2/files-2.1/com.facebook.testing.screenshot/plugin/0.4.1/95bb67a888bc9791a5b8e3a575c98b38bfd9bc75/plugin-0.4.1.jar/android_screenshot_tests/pull_screenshots.py", line 203, in pull_screenshots
File "/Users/gallal/.gradle/caches/modules-2/files-2.1/com.facebook.testing.screenshot/plugin/0.4.1/95bb67a888bc9791a5b8e3a575c98b38bfd9bc75/plugin-0.4.1.jar/android_screenshot_tests/pull_screenshots.py", line 178, in pull_filtered
File "/Users/gallal/.gradle/caches/modules-2/files-2.1/com.facebook.testing.screenshot/plugin/0.4.1/95bb67a888bc9791a5b8e3a575c98b38bfd9bc75/plugin-0.4.1.jar/android_screenshot_tests/metadata.py", line 26, in filter_screenshots
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 657, in parse
self._root = parser.close()
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1654, in close
self._raiseerror(v)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: no element found: line 1, column 8614
:app:pullScreenshots FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:pullScreenshots'.
> Process 'command 'python'' finished with non-zero exit value 1
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:pullScreenshots'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:68)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:241)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:214)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:207)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:55)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:36)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: org.gradle.process.internal.ExecException: Process 'command 'python'' finished with non-zero exit value 1
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:31)
at org.gradle.api.internal.file.DefaultFileOperations.exec(DefaultFileOperations.java:176)
at org.gradle.api.internal.project.AbstractProject.exec(AbstractProject.java:841)
at org.gradle.api.internal.project.AbstractProject.exec(AbstractProject.java:837)
at org.gradle.api.Project$exec$3.call(Unknown Source)
at com.facebook.testing.screenshot.build.ScreenshotsPlugin$_apply_closure1.doCall(ScreenshotsPlugin.groovy:42)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:554)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:535)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:77)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:73)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 60 more
BUILD FAILED
Total time: 1 mins 45.712 secs
from screenshot-tests-for-android.
The new error message about "no element found", was that on Windows or Mac or both?
from screenshot-tests-for-android.
actually the stack trace looks like Mac. I'm looking into it, and I might ask you from extra information.
from screenshot-tests-for-android.
echo $TMPDIR,
inside that directory, you should see some directories prefixed with screenshots. Look at the one that was created last. Inside that there should be a metadata.xml file. Can you either send me the XML file, or if you can't (because it has your test names etc), tell me if the file looks like a proper XML or if there's something obviously corrupt about it.
from screenshot-tests-for-android.
The file is present and is mostly valid. It seems to finish prematurely; it starts with <?xml version='1.0' encoding='utf-8' ?><screenshots><screenshot>
but ends with </screenshot>
and is missing the final </screenshots>
from screenshot-tests-for-android.
Added a more useful error message when the metadata file is corrupt because of not calling onDestroy 8cb937d
from screenshot-tests-for-android.
Thanks very much, very interesting!
I had a custom test runner setup with proper calls to ScreenshotRunner.onCreate(this, args)
and ScreenshotRunner.onDestroy()
as shown below
public class AppTestRunner extends AndroidJUnitRunner {
@Override
public void onCreate(Bundle args) {
ScreenshotRunner.onCreate(this, args);
super.onCreate(args);
}
@Override
public void onDestroy() { // should be finish(int resultCode, Bundle results)
ScreenshotRunner.onDestroy();
super.onDestroy(); // should be super.finish(resultCode, results);
}
}
Issue - I was erroneously overriding onDestroy()
instead of finish(int resultCode, Bundle results)
Fix - override finish(int resultCode, Bundle results)
instead
As an Android developer, I instinctively pair any call to 'onCreate' with 'onDestroy', plus the fact that the ScreenshotRunner method is called 'onDestroy' made this more confusing. I recommend either deprecating onDestroy()
and pointing it to a newly created function called finish
or updating the documentation on the Github readme and the .IO docs site to make this clear.
from screenshot-tests-for-android.
Oh. I definitely badly named this. I'll document this.
from screenshot-tests-for-android.
Is there are any receipt to fix this error? I got the same error.
from screenshot-tests-for-android.
I've got same error on Win7 and Win10 here, any help?
from screenshot-tests-for-android.
Issue is now obsolete since hierarchy output has been changed to json
from screenshot-tests-for-android.
Running: ./gradlew clean recordDebugAndroidTestScreenshotTest
I'm having this exact error "ImportError: No module named PIL" and when I run:
pip install pillow
i get:
Requirement already satisfied: pillow in /usr/local/lib/python3.7/site-packages (6.2.2)
pip install image
Requirement already satisfied: image in /usr/local/lib/python3.7/site-packages (1.5.32)
Requirement already satisfied: pillow in /usr/local/lib/python3.7/site-packages (from image) (6.2.2)
Requirement already satisfied: django in /usr/local/lib/python3.7/site-packages (from image) (3.0.6)
Requirement already satisfied: six in /usr/local/lib/python3.7/site-packages (from image) (1.15.0)
Requirement already satisfied: sqlparse>=0.2.2 in /usr/local/lib/python3.7/site-packages (from django->image) (0.3.1)
Requirement already satisfied: pytz in /usr/local/lib/python3.7/site-packages (from django->image) (2020.1)
Requirement already satisfied: asgiref~=3.2 in /usr/local/lib/python3.7/site-packages (from django->image) (3.2.7)
Is this not supposed to work with python 3?
from screenshot-tests-for-android.
Related Issues (20)
- verifyDebugAndroidTestScreenshotTest:RuntimeError HOT 1
- java.lang.OutOfMemoryError: Failed to allocate a 8781536 byte allocation with 4981712 free bytes and 4MB until OOM, max allowed footprint 536870912, growth limit 536870912 at java.util.Arrays.copyOf(Arrays.java:3260) HOT 2
- Library forces arbitrarily small image width HOT 1
- Found 0 Screenshots
- Recording a single test deletes all other screenshots
- Fail to execute runDebugAndroidTestScreenshotTest due to syntax error HOT 1
- Add support to Kotlin DSL
- RunScreenshotTestTask doesn't support configuration cache
- Performance?
- Value error: Operation on closed image when recording/verifying screenshots HOT 2
- Can't record very large view inside ScrollView HOT 4
- Screenshot record fails because of --> "Accessibility content change on non-UI thread"
- Is it possible to hideout dynamic content on the screen before capturing screenshot HOT 1
- Is it possible to vertical scroll and capture full screen
- Incorrect accessibility actions checks in `AccessibilityUtil`
- How to run plugin tests (plugin:check)
- How to install all the artifacts to local maven repository
- plugin id 'com.facebook.testing.screenshot:plugin' version '0.14.0' apply false Fail for android DSL files
- Add SurfaceView support
- test failure: Is your sdcard directory read-only?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from screenshot-tests-for-android.