love2d / love-android Goto Github PK
View Code? Open in Web Editor NEWAndroid build setup for LÖVE.
Home Page: https://love2d.org
License: Other
Android build setup for LÖVE.
Home Page: https://love2d.org
License: Other
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Currently we issue a call to exit() at the end of love.cpp which works but is a hack. Apparently it is possible to end the application nicer.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
As slime noted this should work somewhat automatically. Still this should be validated
Original report by Landon “Karai” Manning (Bitbucket: karai17, GitHub: karai17).
Exposing the android config to lua would allow more customization for each game without having to recompile or edit love itself.
#!lua
function love.conf(t)
t.android = true
t.android.orientation = "landscape"
t.android.permissions = {"INTERNET", "NFC", "VIBRATE"}
--et cetera
end
Original report by Landon “Karai” Manning (Bitbucket: karai17, GitHub: karai17).
Setting the mouse cursor seems to crash love. This was experienced while using LoveFrames. Probably an SDL issue.
Original report by Anonymous.
When I add the contents of the following repo to /lovegame, Android v8 brings up a black screen then crashes with no error.
https://github.com/shakesoda/rpg
--Landon Manning
Original report by David Khachaturov (Bitbucket: Davidobot, GitHub: Davidobot).
So, while building an apk file on Windows, I ran into some problems.
The first one being that ndk-build doesn't complete the proccess:
#!cmd
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersi
on 10 in ./AndroidManifest.xml
[armeabi] Compile thumb : devil <= il_fastconv.c
[armeabi] Compile thumb : devil <= il_files.c
[armeabi] Compile thumb : devil <= il_fits.c
[armeabi] Compile thumb : devil <= il_ftx.c
[armeabi] Compile thumb : devil <= il_gif.c
[armeabi] Compile thumb : devil <= il_hdr.c
[armeabi] Compile thumb : devil <= il_header.c
[armeabi] Compile thumb : devil <= il_icns.c
[armeabi] Compile thumb : devil <= il_icon.c
[armeabi] Compile thumb : devil <= il_iff.c
[armeabi] Compile thumb : devil <= il_ilbm.c
[armeabi] Compile thumb : devil <= il_internal.c
[armeabi] Compile thumb : devil <= il_io.c
[armeabi] Compile thumb : devil <= il_iwi.c
[armeabi] Compile thumb : devil <= il_jp2.c
In file included from jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/ja
sper/jasper.h:65:0,
from jni/devil-1.7.8/src-IL/src/il_jp2.c:16:
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:107:
0: warning: "PACKAGE" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:305:0: note: this is the location of the pre
vious definition
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:110:
0: warning: "PACKAGE_BUGREPORT" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:308:0: note: this is the location of the pre
vious definition
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:113:
0: warning: "PACKAGE_NAME" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:311:0: note: this is the location of the pre
vious definition
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:116:
0: warning: "PACKAGE_STRING" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:314:0: note: this is the location of the pre
vious definition
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:119:
0: warning: "PACKAGE_TARNAME" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:317:0: note: this is the location of the pre
vious definition
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:122:
0: warning: "PACKAGE_VERSION" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:320:0: note: this is the location of the pre
vious definition
jni/devil-1.7.8/../jasper-1.900.1/src/libjasper/include/jasper/jas_config.h:128:
0: warning: "VERSION" redefined [enabled by default]
jni/devil-1.7.8/include/IL/config.h:351:0: note: this is the location of the pre
vious definition
[armeabi] Compile thumb : devil <= il_jpeg.c
[armeabi] Compile thumb : devil <= il_lif.c
... <- There were more successes here
[armeabi] Compile thumb : tiff <= tif_dirread.c
make.exe: *** Access is denied.
. Stop.
Secondly, if I just run "ant debug" and install the apk on my device it gives me this error (taken from logcat):
#!logcat
I/ActivityManager( 370): Start proc com.davidobot.pixel for activity com.davido
bot.pixel/.PixelActivity: pid=1178 uid=10052 gids={50052, 3003, 1028, 1015}
W/dalvikvm( 1178): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initi
alizing Lorg/libsdl/app/SDLActivity;
W/dalvikvm( 1178): Class init failed in newInstance call (Lcom/davidobot/pixel/P
ixelActivity;)
D/AndroidRuntime( 1178): Shutting down VM
W/dalvikvm( 1178): threadid=1: thread exiting with uncaught exception (group=0xb
1a96ba8)
E/AndroidRuntime( 1178): FATAL EXCEPTION: main
E/AndroidRuntime( 1178): Process: com.davidobot.pixel, PID: 1178
E/AndroidRuntime( 1178): java.lang.UnsatisfiedLinkError: Couldn't load gnustl_sh
ared from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/
com.davidobot.pixel-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.davidobo
t.pixel-1, /system/lib]]]: findLibrary returned null
E/AndroidRuntime( 1178): at java.lang.Runtime.loadLibrary(Runtime.java:35
8)
E/AndroidRuntime( 1178): at java.lang.System.loadLibrary(System.java:526)
E/AndroidRuntime( 1178): at org.libsdl.app.SDLActivity.<clinit>(SDLActivi
ty.java:52)
E/AndroidRuntime( 1178): at java.lang.Class.newInstanceImpl(Native Method
)
E/AndroidRuntime( 1178): at java.lang.Class.newInstance(Class.java:1208)
E/AndroidRuntime( 1178): at android.app.Instrumentation.newActivity(Instr
umentation.java:1061)
E/AndroidRuntime( 1178): at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:2112)
E/AndroidRuntime( 1178): at android.app.ActivityThread.handleLaunchActivi
ty(ActivityThread.java:2245)
E/AndroidRuntime( 1178): at android.app.ActivityThread.access$800(Activit
yThread.java:135)
E/AndroidRuntime( 1178): at android.app.ActivityThread$H.handleMessage(Ac
tivityThread.java:1196)
E/AndroidRuntime( 1178): at android.os.Handler.dispatchMessage(Handler.ja
va:102)
E/AndroidRuntime( 1178): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1178): at android.app.ActivityThread.main(ActivityThrea
d.java:5017)
E/AndroidRuntime( 1178): at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime( 1178): at java.lang.reflect.Method.invoke(Method.java:5
15)
E/AndroidRuntime( 1178): at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime( 1178): at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:595)
E/AndroidRuntime( 1178): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 370): Force finishing activity com.davidobot.pixel/.PixelA
ctivity
E/gralloc_goldfish( 50): gralloc_alloc: Mismatched usage flags: 328 x 583, usa
ge 333
W/GraphicBufferAllocator( 50): alloc(328, 583, 1, 00000333, ...) failed -22 (I
nvalid argument)
E/ ( 50): GraphicBufferAlloc::createGraphicBuffer(w=328, h=583) failed
(Invalid argument), handle=0x0
E/BufferQueue( 370): [ScreenshotClient] dequeueBuffer: SurfaceComposer::createG
raphicBuffer failed
W/WindowManager( 370): Screenshot failure taking screenshot for (328x583) to la
yer 21010
D/dalvikvm( 370): GC_FOR_ALLOC freed 80K, 53% free 6146K/12848K, paused 70ms, t
otal 71ms
I/dalvikvm-heap( 370): Grow heap (frag case) to 7.146MB for 1127536-byte alloca
tion
D/dalvikvm( 370): GC_FOR_ALLOC freed 2K, 49% free 7244K/13952K, paused 74ms, to
tal 74ms
D/dalvikvm( 370): GC_CONCURRENT freed 4K, 49% free 7241K/13952K, paused 7ms+15m
s, total 261ms
W/ActivityManager( 370): Activity pause timeout for ActivityRecord{b1e26658 u0
com.davidobot.pixel/.PixelActivity t4 f}
D/ ( 370): HostConnection::get() New Host Connection established 0xb71e5
9e8, tid 385
W/EGL_emulation( 740): eglSurfaceAttrib not implemented
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressStandard.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressStandard.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressSpacebar.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressSpacebar.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressDelete.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressDelete.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressReturn.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressReturn.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressInvalid.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressInvalid.ogg
W/AudioService( 370): onLoadSoundEffects(), Error -1 while loading samples
I/Process ( 1178): Sending signal. PID: 1178 SIG: 9
W/InputMethodManagerService( 370): Window already focused, ignoring focus gain
of: com.android.internal.view.IInputMethodClient$Stub$Proxy@b1dc2b20 attribute=n
ull, token = android.os.BinderProxy@b221fed8
I/ActivityManager( 370): Process com.davidobot.pixel (pid 1178) has died.
D/InitAlarmsService( 1001): Clearing and rescheduling alarms.
I/MediaFocusControl( 370): AudioFocus abandonAudioFocus() from android.media.
[email protected]$3@b1d75930
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressStandard.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressStandard.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressSpacebar.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressSpacebar.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressDelete.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressDelete.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressReturn.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressReturn.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressInvalid.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressInvalid.ogg
W/AudioService( 370): onLoadSoundEffects(), Error -1 while loading samples
I/ActivityManager( 370): START u0 {act=android.intent.action.MAIN cat=[android.
intent.category.LAUNCHER] flg=0x10200000 cmp=com.davidobot.pixel/.PixelActivity}
from pid 740
E/gralloc_goldfish( 50): gralloc_alloc: Mismatched usage flags: 328 x 583, usa
ge 333
W/GraphicBufferAllocator( 50): alloc(328, 583, 1, 00000333, ...) failed -22 (I
nvalid argument)
E/ ( 50): GraphicBufferAlloc::createGraphicBuffer(w=328, h=583) failed
(Invalid argument), handle=0x0
E/BufferQueue( 370): [ScreenshotClient] dequeueBuffer: SurfaceComposer::createG
raphicBuffer failed
W/WindowManager( 370): Screenshot failure taking screenshot for (328x583) to la
yer 21005
I/dalvikvm( 370): Jit: resizing JitTable from 4096 to 8192
D/dalvikvm( 1201): Not late-enabling CheckJNI (already on)
I/ActivityManager( 370): Start proc com.davidobot.pixel for activity com.davido
bot.pixel/.PixelActivity: pid=1201 uid=10052 gids={50052, 3003, 1028, 1015}
W/dalvikvm( 1201): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initi
alizing Lorg/libsdl/app/SDLActivity;
W/dalvikvm( 1201): Class init failed in newInstance call (Lcom/davidobot/pixel/P
ixelActivity;)
D/AndroidRuntime( 1201): Shutting down VM
W/dalvikvm( 1201): threadid=1: thread exiting with uncaught exception (group=0xb
1a96ba8)
E/AndroidRuntime( 1201): FATAL EXCEPTION: main
E/AndroidRuntime( 1201): Process: com.davidobot.pixel, PID: 1201
E/AndroidRuntime( 1201): java.lang.UnsatisfiedLinkError: Couldn't load gnustl_sh
ared from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/
com.davidobot.pixel-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.davidobo
t.pixel-1, /system/lib]]]: findLibrary returned null
E/AndroidRuntime( 1201): at java.lang.Runtime.loadLibrary(Runtime.java:35
8)
E/AndroidRuntime( 1201): at java.lang.System.loadLibrary(System.java:526)
E/AndroidRuntime( 1201): at org.libsdl.app.SDLActivity.<clinit>(SDLActivi
ty.java:52)
E/AndroidRuntime( 1201): at java.lang.Class.newInstanceImpl(Native Method
)
E/AndroidRuntime( 1201): at java.lang.Class.newInstance(Class.java:1208)
E/AndroidRuntime( 1201): at android.app.Instrumentation.newActivity(Instr
umentation.java:1061)
E/AndroidRuntime( 1201): at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:2112)
E/AndroidRuntime( 1201): at android.app.ActivityThread.handleLaunchActivi
ty(ActivityThread.java:2245)
E/AndroidRuntime( 1201): at android.app.ActivityThread.access$800(Activit
yThread.java:135)
E/AndroidRuntime( 1201): at android.app.ActivityThread$H.handleMessage(Ac
tivityThread.java:1196)
E/AndroidRuntime( 1201): at android.os.Handler.dispatchMessage(Handler.ja
va:102)
E/AndroidRuntime( 1201): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1201): at android.app.ActivityThread.main(ActivityThrea
d.java:5017)
E/AndroidRuntime( 1201): at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime( 1201): at java.lang.reflect.Method.invoke(Method.java:5
15)
E/AndroidRuntime( 1201): at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime( 1201): at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:595)
E/AndroidRuntime( 1201): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 370): Force finishing activity com.davidobot.pixel/.PixelA
ctivity
E/gralloc_goldfish( 50): gralloc_alloc: Mismatched usage flags: 328 x 583, usa
ge 333
W/GraphicBufferAllocator( 50): alloc(328, 583, 1, 00000333, ...) failed -22 (I
nvalid argument)
E/ ( 50): GraphicBufferAlloc::createGraphicBuffer(w=328, h=583) failed
(Invalid argument), handle=0x0
E/BufferQueue( 370): [ScreenshotClient] dequeueBuffer: SurfaceComposer::createG
raphicBuffer failed
W/WindowManager( 370): Screenshot failure taking screenshot for (328x583) to la
yer 21010
W/ActivityManager( 370): Activity pause timeout for ActivityRecord{b2610e90 u0
com.davidobot.pixel/.PixelActivity t5 f}
W/EGL_emulation( 740): eglSurfaceAttrib not implemented
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/Effect_Tick.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Eff
ect_Tick.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressStandard.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressStandard.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressSpacebar.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressSpacebar.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressDelete.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressDelete.ogg
E/SoundPool( 370): error loading /system/media/audio/ui/KeypressReturn.ogg
W/AudioService( 370): Soundpool could not load file: /system/media/audio/ui/Key
pressReturn.ogg
I/Process ( 1201): Sending signal. PID: 1201 SIG: 9
I/ActivityManager( 370): Process com.davidobot.pixel (pid 1201) has died.
Also, here is my AndroidManifest file:
#!xml
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.davidobot.pixel"
android:versionCode="10"
android:versionName="0.9.0-beta1-jetpackpixel-v1.0"
android:installLocation="auto" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- Allow writing to external storage -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="Jetpack Pixel v1.0"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<activity
android:name="PixelActivity"
android:configChanges="orientation|screenSize"
android:label="Jetpack Pixel"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="tv.ouya.intent.category.GAME"/>
</intent-filter>
</activity>
</application>
<!-- Android 2.3.3 -->
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="18" />
<!-- OpenGL ES 2.0 -->
<uses-feature android:glEsVersion="0x00020000" />
</manifest>
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
love.filesystem.getDirectoryItems
seems to not be cross platform between Android and Linux (and I assume OS X and Windows. If someone could test the attached game.love
to confirm that it's an issue with love-android-sld2
and not love tip, 0.9.1
.)
The directory is set up like this:
./main.lua
./animals
./animals/cats
./animals/cats/1.jpg
The expected result of love.filesystem.getDirectoryItems("animals/cats/")
on Android is {"1.jpg"}
but the actual result is {}
.
I have tested this on a Linux, Android [OUYA and Samsung Stellar]. Linux produces the expected result, and Android produces the incorrect result.
Here is a Linux screenshot (0.9.0
):
Here is the Samsung Stellar screenshot (last built c3a2127) :
I have the feeling this may be due to the updates that effected whatever runs behind love.filesystem
. I will test this against tip on both love-android-sdl2
and love
.
I am marking this as a critical bug as it is a part of the love api failing, and not some system workaround. love-android-sdl2
should be as cross platform as possible.
If there's anything I can do, please tell me!
Original report by David Khachaturov (Bitbucket: Davidobot, GitHub: Davidobot).
In my game ( https://love2d.org/forums/viewtopic.php?f=5&t=77282 ), when I packaged it as an apk, saving doesn't seem to work.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Expose the platform specific DisplayMetrics in love.android.getDisplayMetrics() in the platform independent love.window.getPixelScale()
Original report by Ranguna (Bitbucket: Ranguna, GitHub: Ranguna).
We can get the accelerometer (x,y,z) values with the joystick API, they are set as Axis (Axis 1,2,3 -> Accelerometer x,y,z) but they all output 0, I'm guessing it has something to do with this function, maybe it needs to be called somewhere ?
Original report by piernov (Bitbucket: piernov, GitHub: piernov).
Hi,
Firstly thank you for love-android-sdl2, it's exactly what I was looking for. (already took a look some month ago but your project didn't exist yet)
Secondly, in the small project I want to do, I'm needing multitouch support.
It can be easily implemented thanks to SDL2 and its SDL_FINGER* events which work perfeclty on Android.
I've attached a small patch I've just done which converts those event for LÖVE. Very trivial but it might help though.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
To be legally on the safe side all LGPL code has to be linked dynamically such that LGPL does not affect the all the other code.
Therefore we have to:
include $(BUILD_STATIC_LIBRARY)
to include $(BUILD_SHARED_LIBRARY)
Original report by Anonymous.
I tested on my android device and sound/music is laggy. Game runs smooth but only that is a problem.
my android tablet model:
allview alldro speed i
dual core 1,2 Ghz
1 GB SDRAM
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Currently it builds for armeabi but compiling for armeabi-v7a could provide improved performance. This should be looked into using a small benchmark.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Somehow get parts of this
http://developer.android.com/reference/android/util/DisplayMetrics.html
exposed to Lua
Original report by Anonymous.
Original report by Pavol Rusnak (Bitbucket: prusnak, GitHub: prusnak).
I was experimenting with pixel shaders feature and encountered a crash in love::graphics::opengl::Canvas::setupGrab.
Attaching main.lua
and output from adb logcat
.
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
If you're going to release alphas, please tag them in git so I can revert when tip is not working for our users (e.g. me!)!!!
Original report by Anonymous.
Can you add vertical mode i use the lib hump camera for make verticale game but android is in horizontal mode
Original report by Paul Bienkowski (Bitbucket: opatut, GitHub: opatut).
It would be nice to have a few tools for developers to help quick testing on the device.
This would include some shortcut to deploying the test application to the device and running the Löve app, all of which can be done using adb
. A simple bash wrapper script should do. This could be connected with #40 to show the output of the game (print()
).
Also, the pure Löve app (the one that is precompiled as an apk) could be able to load *.love
(zip) files and run them directly, allowing the developer to store several versions or different games on the device and selecting them inside the app for testing. Again, some interface to transfer and run a specific *.love
file from the command line would be nice.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
As of now writing to files using love.filesystem does not work.
Original report by Anonymous.
If possible I think you should a proper video tutorial showing how to use this .
Original report by Paul Bienkowski (Bitbucket: opatut, GitHub: opatut).
When creating a canvas, a BlueScreen appears with the following error message:
Cannot create canvas: Error in implementation. Possible fix: Make canvas width and height powers of two.
Of course, I tried different POT sizes, e.g.
love.graphics.newCanvas(512, 512)
More logcat output that might contain useful information:
V/SDL (10450): onWindowFocusChanged(): true
V/SDL (10450): surfaceChanged()
V/SDL (10450): pixel format RGB_565
V/SDL (10450): Window size:1280x720
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Currently there are two modes for the .apk:
However it is not clear (at least to me) how to install more than one Löve packages simultaneously.
It would be great to have instructions how to properly create a package for a game (including launcher icon + title) that does not interfere with the Löve standalone package.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
(This should have actually been #2, but I did not properly think ahead)
It is time to bring LÖVE to Android. For real!
I have set up a small game that is currently in review on the Google Play Store.
Fingers crossed!
Original report by Paul Bienkowski (Bitbucket: opatut, GitHub: opatut).
It would be helpful if print() output could be redirected to somewhere the developer can read, e.g. the android log (adb logcat
). Or maybe some debug-mode overlay that prints the console output onto the device screen.
Original report by kyle_emmerich (Bitbucket: kyle_emmerich, ).
To reproduce:
Open the app, turn your phone screen off, then turn it back on. Often times, the phone will freeze right before hiding the unlock screen (if you have unlock on) and may take a long time before continuing, if at all.
It seems that it only happens when the app is actually active and on the foreground when resuming.
Tested on a Moto X, Android version 4.4.
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
I am using love-android-sdl2-alpha8 (against tip)
The apk works on my android phone, but not on the OUYA.
So, when I start the apk on an OUYA with and without an assets/game.love
, the game crashes with a black screen.
Logcat info for when I attempt to start the app:
assets/game.love
: http://pastebin.com/raw.php?i=viESVaYzassets/game.love
: http://pastebin.com/raw.php?i=FFmtNV5LThere has been no OUYA updates, and it worked before on alpha7.
Original report by Andrew Anderson (Bitbucket: andmatand, GitHub: andmatand).
On my Nexus 4 (Android 4.4.2) alpha9 crashes on startup. Past versions (not sure which...) worked okay.
I attached (hopefully the correct section of) a logcat.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Currently the save directory is in the internal storage area of the app. This has the benefit that it is properly deleted once the app is removed from the device. Using external storage area would have the nice feature that savegames and highscores could be kept even if the app was removed.
Adding
#!lua
t.android.save_storage = "internal" -- or "external"
to the config would be nice.
Original report by Pavol Rusnak (Bitbucket: prusnak, GitHub: prusnak).
I tried to bundle my Love code via assets/game.love and encountered a crash.
Game works when I unpack game.love to /sdcard/lovegame and app loads resources from there ...
Adb logcat output is attached:
Original report by Anonymous.
I seem To have a problem with canvases. I tried changing it's resolution to 512x512 but no luck.
"Cannot create canvas: Error in implementation. Possible fix: Make canvas width and height powers of two"
I saw that one other had also the problem but a new version fixed it for him. I have also got the newest version. My resolution on phone is 480x320. I'm drawing circle to the canvas. Don't know what more info is neccesary.
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
Seeing as we've moved into the beta phase (whatever that honestly means) I think we should start having a wiki page dedicated to compatible devices, and ways to get specific incompatible devices to work. Perhaps even a test love suite?
If you like this, here is my contribution:
beta1 - OUYA
Rockin' :)
Original report by Anonymous.
As you know android phones have quite a few keys and I'd like to detect when those keys are being pressed.
Heres a link with a pic containing (I think) all the keys that an android phone can have.
I've read in this link that android phones do not require any of those buttons anymore so if you find any kind of code in the android SDK that can tell me if the phone has any special keys then that'd really helpful to.
Original report by Pavol Rusnak (Bitbucket: prusnak, GitHub: prusnak).
I was thinking a little bit more about Love on Android. I think it would make sense to create Love APK that it could be shared among multiple games APKs. I am not sure if it is possible for native code, but for normal apps this can be achieved using Intents I guess.
It would work like this: I download a game that requires Love (let's call it G1.apk). If Love is not installed it would tell me to install Love first (LOVE.apk). If I install second game that requires Love (G2.apk) it would use Love framework from LOVE.apk so I don't end up having the same Love code included in all G1.apk, G2.apk etc.
Original report by Sla Master (Bitbucket: sla_ro, ).
Sometimes I need input from users (for example their nickname for high score table). A function to show/hide keyboard would be nice. Thanks and great work with the port.
Original report by Josef Frank (Bitbucket: funkeh, GitHub: funkeh).
I have created a simple .apk using this code and tested it on six devices. On two of these devices (listed below), the game installs but once it is opened, the screen rotates into landscape mode and goes black for a couple seconds, then the game crashes.
The game crashes on these devices:
Device 1:
Device 2:
Similarities include relatively small screens and a specific Android / CM number.
The game runs properly on these devices:
Device 1:
Device 2:
Device 3:
Device 4:
Original report by Landon “Karai” Manning (Bitbucket: karai17, GitHub: karai17).
The directional pad seems to work, but other buttons do not. Probably an SDL issue.
Original report by Anonymous.
I'm not entirely sure what has caused this but love-android-sdl2 doesn't seem to work on Moto G devices. It doesn't display the "nogame" screen nor does it load any game. This has been tested with a compiled .apk (namely LoveBurgers), too, and the same issue persists. What's given is a blue screen (as if an error has been found on LOVE) without any sort of text.
Tested on alpha1 and alpha8 with multiple reinstalls.
Original report by Rami Sabbagh (Bitbucket: RamiLego4Game, GitHub: RamiLego4Game).
As a lot of tablets use android 4.1
and they have virtual buttons (Back,Menu,VolUp,VolDown) on screen
you should force menu button to be shown
Original report by Ranguna (Bitbucket: Ranguna, GitHub: Ranguna).
Currently love.system.getOS() outputs "Linux", it'd be awesome if you could make it so that it'd output "Android"
Thanks :)
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
Here is a diff of my AndroidManifest.xml:
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 96dfa04..e28a9a9 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,23 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="org.love2d.android"
android:versionCode="7"
- android:versionName="0.9.0-alpha7"
+ android:versionName="0.9.0-alpha7-joysticktest-1.5"
android:installLocation="auto" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
- android:label="Löve for Android"
+ android:label="Joystick Test"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<activity
android:name="GameActivity"
android:configChanges="orientation|screenSize"
- android:label="Löve for Android"
+ android:label="Joystick Test"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="tv.ouya.intent.category.GAME"/>
</intent-filter>
</activity>
</application>
That and added icons are literally the only changes I made. Attached is the game.love.
It terminates unexpectedly on both my samsung stellar and the OUYA.
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Original report by Christiaan Janssen (Bitbucket: cjanssen, GitHub: cjanssen).
I just tried this port of Löve2D with one of my games and worked like a charm. Great job!
Unfortunately, only Debug builds seem to work. Release builds crash at application launch.
Tested on a Nexus 7 tablet (Android 4.3) and an HTC one mini (Android 4.2.2). In case it helps I copy here the output of logcat:
Nexus 7:
I/WindowState( 428): WIN DEATH: Window{41f81808 u0 org.love2d.android/org.love2d.android.GameActivity}
I/ActivityManager( 428): Process org.love2d.android (pid 4792) has died.
W/WindowManager( 428): Force-removing child win Window{41f97348 u0 SurfaceView} from container Window{41f81808 u0 org.love2d.android/org.love2d.android.GameActivity}
W/ActivityManager( 428): Force removing ActivityRecord{4226fb28 u0 org.love2d.android/.GameActivity}: app died, no saved state
W/WindowManager( 428): Failed looking up window
W/WindowManager( 428): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@42321a40 does not exist
W/WindowManager( 428): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7608)
W/WindowManager( 428): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7599)
W/WindowManager( 428): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1000)
W/WindowManager( 428): at android.os.BinderProxy.sendDeathNotice(Binder.java:470)
W/WindowManager( 428): at dalvik.system.NativeStart.run(Native Method)
I/WindowState( 428): WIN DEATH: null
HTC one mini:
I/WindowState( 631): WIN DEATH: Window{4192cdc0 u0 org.love2d.android/org.love2d.android.GameActivity}
W/WindowManager( 631): Force-removing child win Window{41940728 u0 SurfaceView} from container Window{4192cdc0 u0 org.love2d.android/org.love2d.android.GameActivity}
D/InputManager( 631): setFocusedApplication Exception: java.lang.NullPointerException
W/ActivityManager( 631): handleTopAppChanged(): The previous AP is died unexpectedly.
D/WirelessDisplayService( 631): getMirrorDisplayStatus:falsecurState:1
W/WindowManager( 631): Failed looking up window
W/WindowManager( 631): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@419f3dc0 does not exist
W/WindowManager( 631): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8815)
W/WindowManager( 631): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8806)
W/WindowManager( 631): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:977)
W/WindowManager( 631): at android.os.BinderProxy.sendDeathNotice(Binder.java:433)
W/WindowManager( 631): at dalvik.system.NativeStart.run(Native Method)
I/WindowState( 631): WIN DEATH: null
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
I don't know if this is a OUYA issue, and Android issue, or a problem with love-android-sdl2, but I can't get the select button on an xbox 360 controller to work.
I don't have access to a controller that will bind with an android device, but I assume since OUYA runs android, it's a universal problem.
START works fine, interestingly enough (j:isDown(19)
)!
I can confirm that the select button works in love 0.9.0 on arch linux. (j:isDown(6)
or j:isDown(7)
on 0.9.1 with the index bug fix)
Here is the index bug fix I use for 0.9.0 to 0.9.1:
if love._version_minor == 9 and love._version_revision == 0 then
local mt = debug.getregistry()["Joystick"]
local _isDown = mt.__index.isDown
function mt.__index.isDown(self, ...)
local args = {...}
for i,v in ipairs(args) do
args[i] = args[i] - 1
end
return _isDown(self, unpack(args))
end
end
Attached is the joystick test I use for both platforms.
Original report by Pablo Mayobre (Bitbucket: PabloMayobre, GitHub: PabloMayobre).
When using the touch api on my phone it registers numbers from 0 to 1.
I worked this out by multiplying the x number by the width and the y number by the height.
Mousepressed works right
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
When packaging the game with the app the game is copied form assets/game.love to internal storage. This causes app to consume more storage than necessary.
Fixing it would require changes in physfs so it's not that easy!
Original report by Seppi (Bitbucket: josefnpat, GitHub: josefnpat).
Here is my proposed love-android-sdl2 icon.
Staying in the spirit of the love logo graphics: https://www.love2d.org/wiki/L%C3%B6ve_Logo_Graphics
I hereby release this under CC-0 not assuming I have ownership of the Android logo.
** If you prefer, I am happy to provide a pull request. **
Here are the drawables:
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
Original report by Martin Felis (Bitbucket: MartinFelis, GitHub: MartinFelis).
It would be great if files that are downloaded or attached to emails ending with .love could be associated with the app. Maybe even associating main.lua
with the app would be useful.
So far my tinkering was not successful. Any hints appreciated!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.