Skip to content

vab builds missing runtime dependency(ies) #4

Description

@diiviocity

android ui2 apps built by vab crash with the following error message:

09-08 05:27:32.627 32492 32492 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "stbi_image_free" referenced by "/data/app/~~6Z4w6jWbDrsWa6LUPrjeUQ==/io.vlang.ui2.calculator-qECkQ7b2Y4Z8-9PpQC_Kjw==/lib/arm64/libv_calculator.so"...
09-08 05:27:32.627 32492 32492 E AndroidRuntime:    at io.vlang.ui2.calculator.VActivity.<clinit>(VActivity.java:6)
09-08 05:27:32.629  1931  2521 W ActivityTaskManager:   Force finishing activity io.vlang.ui2.calculator/.VActivity

verbose vab output:

$ vab -v 3 --api 35 --name "tabs" --package-id io.vlang.ui2.tabs -o build/android/tabs.apk examples/tabs
Output will be signed with keystore at "/home/yeva/.cache/vab/keystore/debug.keystore"
Compiling V to C
Running v From: /home/yeva/git/ui2
/home/yeva/git/v/v -os android -cc clang -dump-modules "/tmp/vab/v/v.modules" -dump-c-flags "/tmp/vab/v/v.cflags" examples/tabs
Imported modules: ['builtin', 'builtin.closure', 'encoding.base64', 'fontstash', 'gg', 'main', 'math', 'math.bits', 'math.easing', 'math.internal', 'os', 'os.font', 'sokol.c', 'sokol.f', 'sokol.gfx', 'sokol.memory', 'sokol.sapp', 'sokol.sfons', 'sokol.sgl', 'stbi', 'strconv', 'strings', 'strings.textscanner', 'sync', 'sync.stdatomic', 'sync.threads', 'term.termios', 'time', 'ui2', 'v.embed_file', 'v.preludes.embed_file']
Garbage collection is true
Running v From: /home/yeva/git/ui2
/home/yeva/git/v/v -os android -apk -o "/tmp/vab/v_android.c" examples/tabs

Skipping compile. Hashes match 5a37442959debbb965a97f605fc097ba
Preparing package "io.vlang.ui2.tabs"...
Preparing apk base"
Removing previous package directory "/tmp/vab/package/apk"
Copying base files from "/home/yeva/.vmodules/vab/platforms/android" to "/tmp/vab/package/apk"
/home/yeva/.vmodules/vab/platforms/android/res/mipmap/icon.png
/home/yeva/.vmodules/vab/platforms/android/res/values/strings.xml
/home/yeva/.vmodules/vab/platforms/android/src/io/v/android/VActivity.java
/home/yeva/.vmodules/vab/platforms/android/AndroidManifest.xml
No overrides found in ""
Modifying base files...
Modifying native activity "/tmp/vab/package/apk/src/io/v/android/VActivity.java"
Replacing package id "io.v.android" with "io.vlang.ui2.tabs"
Replacing init library "v" with "tabs"
Removing default left-over directory "/tmp/vab/package/apk/src/io/v/android"
Removing default left-over directory "/tmp/vab/package/apk/src/io/v"
Modifying manifest "/tmp/vab/package/apk/AndroidManifest.xml"
Replacing package id "io.v.android" with "io.vlang.ui2.tabs"
Replacing version code "0" with "0"
Replacing debuggable "true" with "false"
Replacing minimum SDK version "21" with "21"
Replacing target SDK version "21" with "35"
Replacing declaration of OpenGL ES version "0x00020000" with "0x00030000"
Replacing activity name "io.v.android.VActivity" with "io.vlang.ui2.tabs.VActivity"
Copying assets...
Including assets from "assets"
Running aapt From: /home/yeva/git/ui2
/opt/android-sdk/build-tools/37.0.0/aapt package -v -f -m -M "/tmp/vab/package/apk/AndroidManifest.xml" -S "/tmp/vab/package/apk/res" -J "/tmp/vab/package/apk/src" -A "/tmp/vab/package/apk/assets" -I "/opt/android-sdk/platforms/android-35/android.jar"
Compiling java sources 1.8/1.8
Running javac From: /tmp/vab/package/apk
/usr/bin/javac -d obj -source 1.8 -target 1.8 -classpath . -sourcepath src -bootclasspath "/opt/android-sdk/platforms/android-35/android.jar" /tmp/vab/package/apk/src/io/vlang/ui2/tabs/R.java /tmp/vab/package/apk/src/io/vlang/ui2/tabs/VActivity.java
Running d8 From: /tmp/vab/package/apk
/opt/android-sdk/build-tools/37.0.0/d8 --min-api 21 --debug --lib "/opt/android-sdk/platforms/android-35/android.jar" --classpath obj --output classes.zip 'obj/io/vlang/ui2/tabs/VActivity.class' 'obj/io/vlang/ui2/tabs/R.class' 'obj/io/vlang/ui2/tabs/R$string.class' 'obj/io/vlang/ui2/tabs/R$mipmap.class' 'obj/io/vlang/ui2/tabs/R$attr.class'
Running aapt From: /tmp/vab/package/apk
/opt/android-sdk/build-tools/37.0.0/aapt package -v -f -S "/tmp/vab/package/apk/res" -M "/tmp/vab/package/apk/AndroidManifest.xml" -A "/tmp/vab/package/apk/assets" -I "/opt/android-sdk/platforms/android-35/android.jar" -F "/tmp/vab/tabs.unaligned.apk" bin
Adding libs to "/tmp/vab/tabs.unaligned.apk"...
Running aapt From: /tmp/vab/build
/opt/android-sdk/build-tools/37.0.0/aapt add -v "/tmp/vab/tabs.unaligned.apk" "lib/armeabi/libtabs.so"
Running aapt From: /tmp/vab/build
/opt/android-sdk/build-tools/37.0.0/aapt add -v "/tmp/vab/tabs.unaligned.apk" "lib/x86_64/libtabs.so"
Running aapt From: /tmp/vab/build
/opt/android-sdk/build-tools/37.0.0/aapt add -v "/tmp/vab/tabs.unaligned.apk" "lib/x86/libtabs.so"
Running aapt From: /tmp/vab/build
/opt/android-sdk/build-tools/37.0.0/aapt add -v "/tmp/vab/tabs.unaligned.apk" "lib/armeabi-v7a/libtabs.so"
Running aapt From: /tmp/vab/build
/opt/android-sdk/build-tools/37.0.0/aapt add -v "/tmp/vab/tabs.unaligned.apk" "lib/arm64-v8a/libtabs.so"
Running zipalign From: /home/yeva/git/ui2
/opt/android-sdk/build-tools/37.0.0/zipalign -v -f 4 "/tmp/vab/tabs.unaligned.apk" "/tmp/vab/tabs.unsigned.apk"
Running apksigner From: /home/yeva/git/ui2
/opt/android-sdk/build-tools/37.0.0/apksigner sign --ks "/home/yeva/.cache/vab/keystore/debug.keystore" --ks-pass pass:android --ks-key-alias "androiddebugkey" --key-pass pass:android --out "/tmp/vab/tabs.apk" "/tmp/vab/tabs.unsigned.apk"
Running apksigner From: /home/yeva/git/ui2
/opt/android-sdk/build-tools/37.0.0/apksigner verify -v "/tmp/vab/tabs.apk"
Removing previous output "build/android/tabs.apk"
Moving product from "/tmp/vab/tabs.apk" to "build/android/tabs.apk"
Generated /home/yeva/git/ui2/build/android/tabs.apk

vab doctor:

vab
    Version    0.4.3 284eb29
    Path       "/home/yeva/.vmodules/vab"
    Base files "/home/yeva/.vmodules/vab/platforms/android"
    os.args    ['vab', 'doctor']

Extra
    Commands
        Allowed false
env
    ANDROID_HOME=/opt/android-sdk
    ANDROID_SDK_ROOT=/opt/android-sdk
    ANDROID_NDK_ROOT=/opt/android-ndk
Java
    JDK
        Version 21.0.12
        Path    "/usr"
        Keytool "/usr/bin/keytool"
Android
    ENV
        sdkmanager "/home/yeva/.cache/v/android/sdk/cmdline-tools/tools/bin/sdkmanager"
        sdkmanager.version "4.0.1"
        avdmanager "/home/yeva/.cache/v/android/sdk/cmdline-tools/tools/bin/avdmanager"
        Managable false
    SDK
        Path "/opt/android-sdk"
        Writable false
        APIs available ['35', '32', '24', '21']
    NDK
        Version 30.0.14904198
        Path "/opt/android-sdk/ndk"
        Side-by-side true
        min API level available 21
        max API level available 36
        arm64-v8a   ['36', '35', '34', '33', '32', '31', '30', '29', '28', '27', '26', '25', '24', '23', '22', '21']
        armeabi-v7a ['36', '35', '34', '33', '32', '31', '30', '29', '28', '27', '26', '25', '24', '23', '22', '21']
        x86         ['36', '35', '34', '33', '32', '31', '30', '29', '28', '27', '26', '25', '24', '23', '22', '21']
        x86_64      ['36', '35', '34', '33', '32', '31', '30', '29', '28', '27', '26', '25', '24', '23', '22', '21']
    Build
        API 35
        Build-tools 37.0.0
    Packaging
        Format apk
Product
    Name "V Test App"
    Package ID "io.v.android"
    Output ""
V
    Version 0.5.2 9d72273
    Path "/home/yeva/git/v"

    |V full version      |V 0.5.2 c1633ac5e186d2a04b1958bdfe8bc55312f51ec8.65c29f2
    |:-------------------|:-------------------
    |OS                  |linux, "Artix Linux"
    |Processor           |12 cpus, 64bit, little endian, 12th Gen Intel(R) Core(TM) i5-12400
    |Memory              |3.01GB/31.08GB
    |                    |
    |V executable        |/home/yeva/git/v/v
    |V last modified time|2026-09-08 02:58:21
    |                    |
    |V home dir          |OK, value: /home/yeva/git/v
    |VMODULES            |OK, value: /home/yeva/.vmodules
    |VTMP                |OK, value: /tmp/v_1000
    |Current working dir |OK, value: /home/yeva/git/ui2
    |                    |
    |env VFLAGS          |"-cc tcc -no-memory-limit"
    |Git version         |git version 2.55.0
    |V git status        |0.5.2-598-g9d722730
    |.git/config present |true
    |                    |
    |cc version          |cc (GCC) 16.2.1 20260810
    |gcc version         |gcc (GCC) 16.2.1 20260810
    |clang version       |clang version 22.1.8
    |tcc version         |tcc version 0.9.28rc 2026-07-24 HEAD@85ba3ae8 (x86_64 Linux)
    |tcc git status      |thirdparty-linux-amd64 d6e7ac1b
    |emcc version        |N/A
    |glibc version       |ldd (GNU libc) 2.44

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions