Closed milen-prg closed 1 year ago
Strange. Does keytool
or keytool.exe
exist somewhere under C:\Program Files\Java\jdk-19
? (Should reside in a bin
directory)
Strange. Does
keytool
orkeytool.exe
exist somewhere underC:\Program Files\Java\jdk-19
? (Should reside in abin
directory)
The keytool.exe indeed exists in: C:\Program Files\Java\jdk-19\bin
BUT, the vab, as see logs above, sees the: C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046 with JRE 8, and there is no keytool, and not work, despite, it discover the JDK 19 by JAVA_HOME in C:\Program Files\Java\jdk-19 The problem is, that vba did not search keytool in this JDK, in JAVA_HOME path, but in C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046.
Additionaly, even the C:\Program Files\Java\jdk-19\bin is in my system PATH, so the keytool is accessible from everywhere.
I find, that if in system PATH the: C:\Program Files\Java\jdk-19\bin is over the: C:\Program Files\Common Files\Oracle\Java\javapath the vab, works.
BUT, I try one of the v ui examples - calculator.v: vab calculator.v and it successfully generates v_test_app.apk
The calculator.v works fine - small GUI calculator ("v run calculator.v" or even "v calculator.v" to make exe), but when I install v_test_app.apk on emulator and on my smartphone and start it - only black screen appears.
Please, can you show some working example of v program, successfully converted to android apk?
@milen-prg you've discovered a regression in V's regex library that was introduced here some days ago. We're looking into it.
@milen-prg try and update V with v up
and then rebuild vab
with the updated v compiler.
Feel free to open a new issue if the problem persist.
@milen-prg with latest v
and vab
- this works for me locally with V UI:
vab --device auto -f "-d no_load_styles" run ~/.vmodules/ui/examples/calculator_resizable.v
For V UI you currently have to pass -f "-d no_load_styles"
. Otherwise you'll get errors like:
folder: /.vui/, error: Read-only file system
.
For a normal V example this works:
vab --device auto run ~/v/examples/2048
@Larpon , I do not know, unfortunately the successfully generated v_test_app.apk file on some devices and emulator shows black screen, on others (most) - closes with message "keep stopping". May be some problem with my android SDK/NDK etc. (I place up the vab doctor log about this), for now vab do not work for me.
Try running it with the --log
flag to capture log output. Like this:
vab --device auto -f "-d no_load_styles" --log run ~/.vmodules/ui/examples/calculator_resizable.v
@Larpon , no log file was created. May be, because, the v_test_app.apk file is successfully created. But when I install this v_test_app.apk in emulator / smartphone, it again displays message "keeps stopping". I uppload this apk in zip archive if you want to try. v_test_app.zip
Thanks, I'll have a look at it soon
OS: Windows 10 Pro 64bit
V version
vab doctor
C:\Users\mlap\Downloads\temp>vab doctor Warning: could not locate
keytool
: vab.java.jdk_keytool: nokeytool.exe
could be located in "C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046" vab will not be able to sign any packages. It looks like you have a Java compiler (C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046\javac.exe) but nokeytool
you probably have Java JRE installed but no JDK. Please install Java JDK >= 8 or provide a valid path via JAVA_HOME The detectedsdkmanager
seems outdated or incompatible with the Java version used. Forvab
to control it's own dependencies, please updatesdkmanager
found in: "C:\Users\mlap\AppData\Local\Android\sdk\tools\bin\sdkmanager.bat" or use a Java version that is compatible with yoursdkmanager
. You can set the SDKMANAGER env variable or try your luck withvab install auto
. Please see https://stackoverflow.com/a/61176718/1904615 for more help.vab Version 0.3.7 fff2efd Path "C:\Users\mlap.vmodules\vab" Base files "C:\Users\mlap.vmodules\vab\platforms\android" env JAVA_HOME=C:\Program Files\Java\jdk-19 Java JDK Version 19.0.0 Path "C:\Program Files\Java\jdk-19" Keytool "N/A" Android ENV sdkmanager "C:\Users\mlap\AppData\Local\Android\sdk\tools\bin\sdkmanager.bat" sdkmanager.version "0.0.0" Managable false SDK Path "C:\Users\mlap\AppData\Local\Android\sdk" Writable true APIs available ['33', '31', '25'] NDK Version 25.2.9519653 Path "C:\Users\mlap\AppData\Local\Android\sdk\ndk" Side-by-side true min API level available 19 max API level available 33 arm64-v8a ['33', '32', '31', '30', '29', '28', '27', '26', '24', '23', '22', '21'] armeabi-v7a ['33', '32', '31', '30', '29', '28', '27', '26', '24', '23', '22', '21', '19'] x86 ['33', '32', '31', '30', '29', '28', '27', '26', '24', '23', '22', '21', '19'] x86_64 ['33', '32', '31', '30', '29', '28', '27', '26', '24', '23', '22', '21'] Build API 33 Build-tools 33.0.1 Packaging Format apk Product Name "V Test App" Package ID "io.v.android" Output "" V Version 0.3.3 6e1e406 Path "C:\v"
What did you do?
C:\Users\mlap\Downloads\temp>vab .
I try to make apk from .v file, but error is returned.
What did you expect to see?
Successfully generated apk.
What did you see instead?
Warning: could not locate
keytool
: vab.java.jdk_keytool: nokeytool.exe
could be located in "C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046" vab will not be able to sign any packages. It looks like you have a Java compiler (C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046\javac.exe) but nokeytool
you probably have Java JRE installed but no JDK. Please install Java JDK >= 8 or provide a valid path via JAVA_HOMEI really have Java JRE 8 in "C:\Program Files\Common Files\Oracle\Java\javapath_target_1556046", but I have full new Java JDK in JAVA_HOME, detected from vab doctor (see above).