Open PyJay opened 4 years ago
Does running enaml-native bundle-assets
directly work?
https://github.com/codelv/enaml-native/blob/master/android/build.gradle#L92
Thanks for the quick reply. No luck
c:\dev\code\FooBar
(c:\dev\code\FooBar\venv) λ enaml-native bundle-assets
# packages in environment at c:\dev\code\FooBar\venv:
#
# Name Version Build Channel
android-atom 0.4.3 py37_0 codelv
android-enaml 0.10.3 py37_0 codelv
android-libcxx 11 0 codelv
android-msgpack 0.5.6 0 codelv
android-python 3.7.4 py37_1 codelv
[DEBUG] Building for 3.7m
[DEBUG]: -> running cd c:\dev\code\FooBar\venv/android/enaml-native/src/main/jni
[INFO]: -> running none\ndk-build.cmd
[DEBUG]: -> running cd c:\dev\code\FooBar
Traceback (most recent call last):
File "c:\dev\bin\anaconda\envs\foobar\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\dev\bin\anaconda\envs\foobar\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\dev\code\FooBar\venv\Scripts\enaml-native.exe\__main__.py", line 7, in <module>
File "c:\dev\bin\anaconda\envs\foobar\lib\site-packages\enamlnativecli\main.py", line 1772, in main
EnamlNativeCli().start()
File "c:\dev\bin\anaconda\envs\foobar\lib\site-packages\enamlnativecli\main.py", line 1766, in start
cmd.run(self.args)
File "c:\dev\bin\anaconda\envs\foobar\lib\site-packages\enamlnativecli\main.py", line 582, in run
self.cmds['ndk-build'].run(args)
File "c:\dev\bin\anaconda\envs\foobar\lib\site-packages\enamlnativecli\main.py", line 513, in run
shprint(ndk_build)
File "c:\dev\bin\anaconda\envs\foobar\lib\site-packages\enamlnativecli\main.py", line 158, in shprint
process = cmd(*args, **kwargs).process
File "c:\dev\bin\anaconda\envs\foobar\lib\site-packages\pbs.py", line 454, in __call__
cwd=call_args["cwd"], stdin=stdin, stdout=stdout, stderr=stderr)
File "c:\dev\bin\anaconda\envs\foobar\lib\subprocess.py", line 800, in __init__
restore_signals, start_new_session)
File "c:\dev\bin\anaconda\envs\foobar\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
Is the android ndk installed?
It's saying ndk-build is missing ( https://github.com/codelv/enaml-native-cli/blob/master/enamlnativecli/main.py#L461)
I never found a ndk-bundle
dir where the Sdk was installed but with your point above I changed the android:ndk path to <userdir>AppData/Local/Android/Sdk/ndk/21.0.6113669
which had an ndk-build.
I think I'm very close now...I got an error about no devices/emulators so I set up one via Android Studio. Now I'm stuck on
Starting: Intent { cmp=com.foobar.foobar/.MainActivity }
Error type 3
Error: Activity class {com.foobar.foobar/com.foboar.foobar.MainActivity} does not exist.
[DEBUG]: -> running cd c:\dev\code\foobar
EDIT: I think the issue still may be in bundle-assets. I will try to debug that further and add to this comment.
I started from scratch. bundle-assets
works now but I keep getting this error when running build-android
or run-android
. Any ideas?
Steps followed:
conda create -n enamlnative python
conda activate enamlnative
pip install enaml-native-cli
cd c:\dev\code
enaml-native create app
cd c:\dev\code\foobar
conda activate c:\dev\code\foobar\venv
enaml-native bundle-assets
- worksenaml-native build-android
- does not work Please post the error when running the bundle command directly
The bundle-asset command works fine but was having issue with the build-android command.
Used a breakpoint to add the --stacktrace option (as I couldn't get the extra
arg option to work).
Looks like it expects c:\dev\code\foobar\venv\bin\enamlnative
to exist but there is no bin
folder. There is enamlnative.exe
in the Scripts
folder though.
Command and stack trace below:
(c:\dev\code\foobar\venv) λ enaml-native build-android
c:\dev\bin\anaconda\envs\foobar\lib\site-packages\atom\scalars.py:227: FutureWarning: Unicode is deprecated and will be removed in atom 0.6.0
warnings.warn(FutureWarning(msg))
[DEBUG]: -> running cd android
> c:\dev\bin\anaconda\envs\foobar\lib\site-packages\enamlnativecli\main.py(1276)run()
-> shprint(gradlew, 'assembleDebug', *args.extra, _debug=True)
(Pdb) shprint(gradlew, 'assembleDebug', '--stacktrace', _debug=True)
[INFO]: -> running gradlew.bat assembleDebug --stacktrace
> Task :app:preBuild UP-TO-DATE
> Task :enaml-native:bundlePython FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':enaml-native:bundlePython'.
> A problem occurred starting process 'command 'venv/bin/enaml-native''
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':enaml-native:bundlePython'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'venv/bin/enaml-native''
at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:232)
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:209)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:356)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42)
... 3 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'venv/bin/enaml-native'
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WindowsProcessLauncher.start(WindowsProcessLauncher.java:22)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.startProcess(ExecHandleRunner.java:97)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:70)
... 4 more
Caused by: java.io.IOException: Cannot run program "venv/bin/enaml-native" (in directory "C:\dev\code\foobar"): CreateProcess error=2, The system cannot find the file specified
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 8 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
... 9 more
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
1 actionable task: 1 executed
Does running
enaml-native bundle-assets
directly work?https://github.com/codelv/enaml-native/blob/master/android/build.gradle#L92
I finally got this working today by changing the commandLine path from venv/bin/enaml-native
to c:/dev/bin/conda/envs/foobar/Scripts/enaml-native.exe
task bundlePython(type: Exec) {
workingDir "../../../" // root enaml-native dir
if (project.hasProperty("preReleaseBuild")) {
commandLine "c:/dev/bin/conda/envs/foobar/Scripts/enaml-native.exe", "bundle-assets", "--release"
} else {
commandLine "c:/dev/bin/conda/envs/foobar/Scripts/enaml-native.exe", "bundle-assets"
}
}
Then I just had to install JAVA jdk, upgrade gradle to latest version (JDK 14 was throwing an error with the existing version of gradle - https://github.com/gradle/gradle/issues/10248#issuecomment-604468247)
I have followed the steps on the README on Windows. I have:
enaml-native create app
so I have a folderFooBar
FooBar\venv
environmentOn running
enaml-native-cli run-android
it fails with the following error: