gbelo
January 31, 2020, 8:15pm
#33
I’ve tried grabbing the latest lime and OpenFL–
Lime Command-Line Tools (7.7.0)
OpenFL Command-Line Tools (8.2.2-LpgCLS)
– but I’m getting this:
Error: OpenFL 8.2.2 is not compatible with Lime 7.7.0 (version 6.4.* is required)
Is there some toolchain with versions of these that are compatible and that support arm64?
You can try adding -Ddisable-version-check
to allow OpenFL 8.2 to build with Lime 7.7 (I’m not sure if it would be compatible or not?) or changes from the Lime tools could be backported for an older release
gbelo
January 31, 2020, 11:24pm
#35
No luck, unfortunately – doesn’t look like lime 7.7.0 and OpenFL 8.2.2-LphCLS are compatible. But from what I can tell, it’s due to something missing on the lime side that OpenFL now checks for…?
C:\HaxeToolkit\haxe\haxelib run lime build “project.xml” android -64 -Ddisable-version-check C:/HaxeToolkit/haxe/lib/openfl/8,2,2/src/openfl/display/Stage.hx:7: characters 7-25 : Type not found : lime.app.Preloader
If I run through Stage.hx and simply comment out what’s missing, it looks like there are three packages OpenFL can’t find:
lime.app.Preloader;
lime.graphics.Renderer;
lime.ui.Mouse in LimeMouse;
And then, of course, past that, other files break (e.g. DisplayObject.hx can’t find lime.graphics.utils.ImageCanvasUtil), which is to be expected…
Have you tried a newer OpenFL version with your app?
gbelo
February 1, 2020, 1:37am
#37
I thought I was using the latest but I wasn’t – .dev specified 8.2.2 and .current specified the latest (8.9.6), so I had to make sure I was using .current. Thanks for the catch.
With 8.9.6, it gets farther.
Link: libApplicationMain-v7.so
Error: Source path “C:/HaxeToolkit/haxe/lib/lime/7,7,0/ndll/Android/liblime-x86_64.so” does not exist
In that directory, I have a liblime-64.so among others, though. I’m not sure why it’s trying to include an x86_64, since I’ve specified
<architecture name="arm64" if="android" />
and the output seems to verify that it’s using arm…?:
C:\HaxeToolkit\haxe\haxelib run lime build “project.xml” android -64
Creating C:/Users/greed/Documents/Temp/lst/builds/export-released/android/obj/obj/android-v7/__pch/haxe/hxcpp.h.gch…
Compiling group: haxe
arm-linux-androideabi-g++ -Iinclude --sysroot=C:\Users\greed\AppData\Local\Android\ndk\android-ndk-r10e/platforms/android-16/arch-arm -IC:\Users\greed\AppData\Local\Android\ndk\android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.8/include -IC:\Users\greed\AppData\Local\Android\ndk\android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include -DHXCPP_ARMV7 -DHXCPP_VISIT_ALLOCS(haxe) -DHXCPP_API_LEVEL=331(haxe) -IC:/HaxeToolkit/haxe/lib/hxcpp/4,0,64/include -Iinclude -fpic -fvisibility=hidden -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -Wno-overflow -D_LINUX_STDDEF_H -Wno-psabi -DHXCPP_CPP11 -DHXCPP_ARMV7 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -fomit-frame-pointer -fexceptions -fno-strict-aliasing -finline-limit=10000 -DANDROID=ANDROID -DHX_ANDROID -DHXCPP_ANDROID_PLATFORM=16 -Wa,–noexecstack -O2 -DNDEBUG -c … tags=[haxe,static]
src/__ASSET__levels_dlc_5_tmx.cpp
src/openfl/system/SecurityDomain.cpp [haxe,release]
But the error leads me to this thread: Does openfl support 64-bit devices on Android? , though it also seems to deal with x86_64.
We don’t include x86_64 builds for Android in the Lime releases right now. Could someone using the dev version of Lime try lime rebuild android -64
and see if it works with the current version of HXCPP?
Works like a charm with hxcpp: [4.0.64]
gbelo
February 6, 2020, 4:25am
#40
In toying around, I think I’ve got a better understanding of what’s going on here:
gbelo:
Link: libApplicationMain-v7.so
Error: Source path “C:/HaxeToolkit/haxe/lib/lime/7,7,0/ndll/Android/liblime-x86_64.so” does not exist
From what I can tell, lime’s including -v7.so as it should… but it’s also trying to include -x86_64.so and it sounds like it shouldn’t be. Is my interpretation correct? Is that what it should be doing, or should we expect a different sort of behavior?
I’m currently running through building the dev version of lime (branch ‘develop’) and will try that as well when I can.
Adding the 64-bit architecture will cause it to look for an “x86_64” binary but this is not built and included in the Haxelib distribution of Lime currently.
It sounds as if we just need a current HXCPP and an update to our build server script to include this architecture for future releases but perhaps I’m wrong
gbelo
February 22, 2020, 5:57am
#42
OK, I’m giving it another shot from scratch-ish. Forgive the long pastes but I’m trying to be thorough, I guess…?
Here’s trying it with lime 7.7.0. Version info for haxelib and openfl:
PS C:\Users\greed\Files\Personal\Software\Games\lst\haxe> haxelib version
3.3.0 (a494d8be523e26fcf875e2c33915808dc221e17a)
PS C:\Users\greed\Files\Personal\Software\Games\lst\haxe> openfl --version
.d88 88b. 888888b 888
d88P" "Y88b 888 888
888 888 888 888
888 888 88888b. .d88b. 88888b. 8888888 888
888 888 888 "88b d8P Y8b 888 "88b 888 888
888 888 888 888 88888888 888 888 888 888
Y88b. .d88P 888 d88P Y8b. 888 888 888 888
"Y88 88P" 88888P" "Y8888 888 888 888 "Y888P
888
888
OpenFL Command-Line Tools (8.9.6-LpgCLS)
Use openfl setup to configure platforms or openfl help for more commands
PS C:\Users\greed\Files\Personal\Software\Games\lst\haxe> lime --version
_/\\\\\\______________________________________________
_\////\\\______________________________________________
_____\/\\\_____/\\\_____________________________________
______\/\\\____\///_____/\\\\\__/\\\\\_______/\\\\\\\\___
_______\/\\\_____/\\\__/\\\///\\\\\///\\\___/\\\/////\\\__
________\/\\\____\/\\\_\/\\\_\//\\\__\/\\\__/\\\\\\\\\\\___
_________\/\\\____\/\\\_\/\\\__\/\\\__\/\\\_\//\\///////____
________/\\\\\\\\\_\/\\\_\/\\\__\/\\\__\/\\\__\//\\\\\\\\\\__
________\/////////__\///__\///___\///___\///____\//////////___
Lime Command-Line Tools (7.7.0)
Use lime setup to configure platforms or lime help for more commands
And then, running lime 7.7.0:
PS C:\Users\greed\Files\Personal\Software\Games\lst\haxe> C:\HaxeToolkit\haxe\haxelib run lime build "project.xml" android -64
Creating C:/Users/greed/Documents/Temp/lst/builds/export-released/android/obj/obj/android-v7/__pch/haxe/hxcpp.h.gch...
Compiling group: haxe
arm-linux-androideabi-g++ -Iinclude --sysroot=C:\\Users\\greed\\AppData\\Local\\Android\\ndk\\android-ndk-r10e/platforms/android-16/arch-arm -IC:\\Users\\greed\\AppData\\Local\\Android\\ndk\\android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.8/include -IC:\\Users\\greed\\AppData\\Local\\Android\\ndk\\android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include -DHXCPP_ARMV7 -DHXCPP_VISIT_ALLOCS(haxe) -DHXCPP_API_LEVEL=331(haxe) -IC:/HaxeToolkit/haxe/lib/hxcpp/4,0,64/include -Iinclude -fpic -fvisibility=hidden -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -Wno-overflow -D_LINUX_STDDEF_H -Wno-psabi -DHXCPP_CPP11 -DHXCPP_ARMV7 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -fomit-frame-pointer -fexceptions -fno-strict-aliasing -finline-limit=10000 -DANDROID=ANDROID -DHX_ANDROID -DHXCPP_ANDROID_PLATFORM=16 -Wa,--noexecstack -O2 -DNDEBUG -c ... tags=[haxe,static]
- src/StateDOS.cpp
- src/lime/utils/AssetCache.cpp [haxe,release]
Link: libApplicationMain-v7.so
Error: Source path "C:/HaxeToolkit/haxe/lib/lime/7,7,0/ndll/Android/liblime-x86_64.so" does not exist
But when I try the version in the repo, I get:
PS C:\Users\greed\Files\Personal\Software\Games\lst\haxe> C:\HaxeToolkit\haxe\haxelib run lime build “project.xml” android -64
Error: Source path “C:/HaxeToolkit/haxe/lib/lime/lime/ndll/Android/liblime-v7.so” does not exist
It looks like I’m using the 4 Feb 2020 version from the repo:
Any ideas? Any other info that I can share or things that I can try that might be helpful?
gbelo
March 8, 2020, 11:35pm
#44
Bump
Have you happened to figure this one out?
gbelo
March 10, 2020, 12:31am
#46
That would make sense. I tried all of the instructions in README.md. Started from scratch and essentially ran these:
git clone --recursive https://github.com/openfl/lime
haxelib dev lime lime
haxelib install format
lime rebuild windows
That built some ndll’s for Windows and Windows64 with no problem.
But lime rebuild android -64 doesn’t:
PS C:\HaxeToolkit\haxe\lib\lime\from-cmd> lime rebuild android -64
Compiling group: native-toolkit-openal
arm-linux-androideabi-g++ -Ilib/openal/Alc -Ilib/openal/build/ -Ilib/openal/common/ -Ilib/openal/include/ -Ilib/openal/OpenAL32/include/ -DAL_ALEXT_PROTOTYPES -D_LARGEFILE_SOURCE -D_LARGE_FILES -Ilib/sdl/include/ -Ilib/sdl/include/configs/default/ -DHAVE_SDL2 -fPIC -fvisibility=hidden -pthread --std=c99 -Wno-psabi -fsigned-char --sysroot=C:\Users\greed\AppData\Local\Android\ndk\android-ndk-r10e/platforms/android-16/arch-arm -IC:\Users\greed\AppData\Local\Android\ndk\android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.8/include -IC:\Users\greed\AppData\Local\Android\ndk\android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include -DHXCPP_VISIT_ALLOCS(haxe) -DHXCPP_API_LEVEL=0(haxe) -IC:/HaxeToolkit/haxe/lib/hxcpp/4,0,64/include -Iinclude -fpic -fvisibility=hidden -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -Wno-overflow -D_LINUX_STDDEF_H -Wno-psabi -DHXCPP_CPP11 -DHXCPP_ARMV5 -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer -fexceptions -fno-strict-aliasing -finline-limit=10000 -DANDROID=ANDROID -DHX_ANDROID -DHXCPP_ANDROID_PLATFORM=16 -Wa,--noexecstack -O2 -DNDEBUG -c ... tags=[haxe,static]
- lib/openal/Alc/effects/compressor.c
- lib/openal/Alc/ringbuffer.c
- lib/openal/Alc/mastering.c
- lib/openal/common/atomic.c
- lib/openal/OpenAL32/alSource.c
- lib/openal/common/alcomplex.c
- lib/openal/OpenAL32/alBuffer.c
Error: In file included from lib/openal/OpenAL32/include/alMain.h:28:0,
from ./lib/openal/OpenAL32/alBuffer.c:31:
lib/openal/common/atomic.h:27:23: fatal error: stdatomic.h: No such file or directory
#include <stdatomic.h>
^
compilation terminated.
Error: In file included from ./lib/openal/Alc/ringbuffer.c:29:0:
lib/openal/common/atomic.h:27:23: fatal error: stdatomic.h: No such file or directory
#include <stdatomic.h>
^
compilation terminated.
Error: In file included from lib/openal/OpenAL32/include/alMain.h:28:0,
from lib/openal/OpenAL32/include/alError.h:4,
from ./lib/openal/Alc/effects/compressor.c:24:
lib/openal/common/atomic.h:27:23: fatal error: stdatomic.h: No such file or directory
#include <stdatomic.h>
^
compilation terminated.
Any good way to see where stdatomic is or if it’s there?
Run lime rebuild android
with the Android r15c NDK to rebuild Lime
gbelo
March 12, 2020, 10:16pm
#48
Using r15c fixed everything. (I was on r10-something.) Thanks for the support!
1 Like
Hi, was anyone recently able to upload two different APKS for ARMV7, ARM64 using the hint “same version number and different version code”. I tried everything I can imagine but Google Console refuses to accept my APKs.
Any other news here? Maybe that App Bundle is in its way?
You can now create Android App Bundle by using the latest version of Lime/HXCPP
<setenv name="ANDROID_GRADLE_TASK" value=":app:bundleRelease" />
I still did not know what happened at your side but I was able to upload different apk files on Google Play Console
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yourcompany.yourapp" android:versionCode="4602" android:versionName="1.0.0" android:installLocation="auto">
<!--<uses-feature android:glEsVersion="0x00020000" android:required="true" />-->
<!--<uses-permission android:name="android.permission.WAKE_LOCK" />-->
<uses-permission android:name="android.permission.INTERNET" />
<!--<uses-permission android:name="android.permission.VIBRATE" />-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="29"/>-->
<application android:label="Name of your app">
<meta-data android:name="android.max_aspect" android:value="2.5" />
</application>
<!--uncomment if using admob ex-->
<!--<uses-library android:name="org.apache.http.legacy" android:required="false"/>-->
<supports-screens
android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
</manifest>
Using android:versionCode=“4602” for 32bit app (armv7) and android:versionCode=“4603” for 64bit app(arm64). The versioncode of 32bit app is always lower than 64bit app and upload app that supports armv7 chipset first!
project.xml (in short)
> <meta title="Name of your app" package="com.yourcompany.yourapp" version="1.0.0" company="Your Company" />
>
> <!-- output -->
> <app main="Main" file="yourapp" path="bin" />
> <!--<setenv name="ANDROID_GRADLE_TASK" value=":app:bundleRelease" />-->
> <!--<architecture name="arm64" if="android"/>-->
> <!--<architecture exclude="armv7" if="android"/>-->
>
> <architecture name="armv7" if="android"/>
> <architecture exclude="arm64" if="android"/>
> <config:android minimum-sdk-version="19" target-sdk-version="29" />
> <template path="templates/AndroidManifest.xml" rename="AndroidManifest.xml" if ="android" />
<window hardware="true" allow-high-dpi="true" width="0" height="0" orientation="portrait" fps="60" resizable="true" vsync="false" fullscreen="true" antialiasing="0" if="cpp"/>
5 Likes
Man I can build a app bundle now. Thank you very much. <3 <3 <3