Android port efforts

For people working on the C++ code.
User avatar
stu
Member
Posts: 923
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11
Location: United Kingdom

by stu » Post

VanessaE wrote:Tried the debug apk on my little Xelio P1001A tablet (rooted). The install seemed to go okay, but it instantly crashes as soon as you tap the launcher icon.
That error looks quite familiar, what version of android is that thing running?

User avatar
VanessaE
Moderator
Posts: 4655
Joined: Sun Apr 01, 2012 12:38
GitHub: VanessaE
IRC: VanessaE
In-game: VanessaE
Location: Western NC
Contact:

by VanessaE » Post

It's running the stock Android 4.1 that came with it (I doubt they'll ever offer upgrades :P ).
You might like some of my stuff: Plantlife ~ More Trees ~ Home Decor ~ Pipeworks ~ HDX Textures (64-512px)

User avatar
stu
Member
Posts: 923
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11
Location: United Kingdom

by stu » Post

VanessaE wrote:It's running the stock Android 4.1 that came with it (I doubt they'll ever offer upgrades :P ).
I have the same problem with this cheap tablet I got, it looks like I'm stuck with 4.2 with bugged native de-bugging :-/

I will see if I can recreate this in the emulator tomorrow.

User avatar
hoodedice
Member
Posts: 1374
Joined: Sat Jul 06, 2013 06:33
GitHub: hoodedice
IRC: hoodedice
In-game: hoodedice
Location: world
Contact:

by hoodedice » Post

Minetest fails to run on my android, either freezes up on the blue screen, or crashes if I touch the screen just after the app opens.

I think trying to optimize minetest for this junk I have will not be worth it.
7:42 PM - Bauglio: I think if you go to staples you could steal firmware from a fax machine that would run better than win10 does on any platform
7:42 PM - Bauglio: so fudge the stable build
7:43 PM - Bauglio: get the staple build

User avatar
Splizard
Member
Posts: 227
Joined: Wed Jan 25, 2012 07:20
GitHub: Splizard
IRC: Splizard
In-game: Splizard
Location: New Zealand
Contact:

by Splizard » Post

debug.apk runs pretty nice on Androidx86 on a hybrid tablet. 15fps with all settings on lowest.
The tablet has 2gb ram, a low-end intel graphics card and a dual core cpu.
Games: Builda City, The Hungry Games Mods: Lifters, Snow Biomes and Gates. Also checkout my texture pack Gridtoon!

Jordach
Member
Posts: 4534
Joined: Mon Oct 03, 2011 17:58
GitHub: Jordach
IRC: Jordach
In-game: Jordach
Location: Blender Scene

by Jordach » Post

I get a decent 20fps on my cheap, no name tablet. I had all the settings on wtih Android 4.0.4.

Other than that, we need a chat button.

User avatar
stu
Member
Posts: 923
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11
Location: United Kingdom

by stu » Post

hoodedice wrote:Minetest fails to run on my android, either freezes up on the blue screen, or crashes if I touch the screen just after the app opens.

I think trying to optimize minetest for this junk I have will not be worth it.
Too bad, however, if the game is loading there may be a chance a future version will not crash.
just out of interest, what version of android are you running?
Splizard wrote:debug.apk runs pretty nice on Androidx86 on a hybrid tablet. 15fps with all settings on lowest.
The tablet has 2gb ram, a low-end intel graphics card and a dual core cpu.
Glad to hear it works at least, though I would have expected a slightly better framerate on something like that.
Are you testing in single or multi player mode?
Jordach wrote:I get a decent 20fps on my cheap, no name tablet. I had all the settings on wtih Android 4.0.4.

Other than that, we need a chat button.
Sounds similar to what I have, do you have it rooted?

VanessaE: The apk extracted and worked fine under 4.1.2 in the emulator so it's not something specific to that.
Looking again at your LogCat output, this seems to be the problem here

Code: Select all

E/AndroidRuntime( 1952): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.minetest/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to find native library: Minetest
Can you tell me exactly how you installed the apk?
If you didn't already then try using adb install -r Minetest-debug.apk (do not change the name)

Also, if you happen to have an existing directory called minetest in your sdcard root then you MUST delete or rename it.
Last edited by stu on Tue Feb 11, 2014 19:54, edited 1 time in total.

User avatar
VanessaE
Moderator
Posts: 4655
Joined: Sun Apr 01, 2012 12:38
GitHub: VanessaE
IRC: VanessaE
In-game: VanessaE
Location: Western NC
Contact:

by VanessaE » Post

I installed the apk via the "Apkinstaller" that came with the tablet, which I assume is some standard Android utility for this purpose (about the only other thing I can find about it is that its version is 2.9.40.07). There is no existing minetest dir in /sdcard (in fact, there *still* isn't :-) ).

Meanwhile, you should not assume the install must always go to /sdcard, you should ask the user where to install it, if possible, as Minetest of course needs to be able to store large quantities of data. Reason I say that is that the user's mobile device may not have their preferred/high-capacity storage on /sdcard (my tablet puts it at /mnt/external_sd for example).
You might like some of my stuff: Plantlife ~ More Trees ~ Home Decor ~ Pipeworks ~ HDX Textures (64-512px)

User avatar
hoodedice
Member
Posts: 1374
Joined: Sat Jul 06, 2013 06:33
GitHub: hoodedice
IRC: hoodedice
In-game: hoodedice
Location: world
Contact:

by hoodedice » Post

It's a custom Android 2.3.9 based off cyanogenmod, but has newer, better hardware drivers.
7:42 PM - Bauglio: I think if you go to staples you could steal firmware from a fax machine that would run better than win10 does on any platform
7:42 PM - Bauglio: so fudge the stable build
7:43 PM - Bauglio: get the staple build

User avatar
stu
Member
Posts: 923
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11
Location: United Kingdom

by stu » Post

VanessaE wrote:I installed the apk via the "Apkinstaller" that came with the tablet, which I assume is some standard Android utility for this purpose (about the only other thing I can find about it is that its version is 2.9.40.07). There is no existing minetest dir in /sdcard (in fact, there *still* isn't :-) ).
Perhaps the "Apkinstaller" does something different to adb, I have no way of knowing. All I can suggest is you try adb.
VanessaE wrote:Meanwhile, you should not assume the install must always go to /sdcard, you should ask the user where to install it, if possible, as Minetest of course needs to be able to store large quantities of data. Reason I say that is that the user's mobile device may not have their preferred/high-capacity storage on /sdcard (my tablet puts it at /mnt/external_sd for example).
I realize the install assumptions are not perfect but It does need to default to somewhere. I am trying desperately to keep this a purely native app, the last thing I want to do is add some horrible java front-end asking you where to install.
I would much rather add a user path override setting in minetest.conf, then users would be responsible for moving the default files to the new location. Besides, I don't see storage being much an issue on most modern media, unless you create a very big map in singleplayer or try to run a server.

What I will do is auto name the default directory to minetest_1 etc if a minetest directory already exists.

Thanks for the update.

User avatar
VanessaE
Moderator
Posts: 4655
Joined: Sun Apr 01, 2012 12:38
GitHub: VanessaE
IRC: VanessaE
In-game: VanessaE
Location: Western NC
Contact:

by VanessaE » Post

I get the same failure with xyz's and sfan5's test builds, whether they are installed through "apkinstaller" or via adb as you suggested. The files from sfan5's build (with the minetest dir manually copied to /sdcard) look like this, once installed:

http://pastebin.com/raw.php?i=Z3xNJxbc

I post this because I expect yours is similar (but I've already since removed it).

The device is rooted and has SwitchMe installed, perhaps these change the way top level of /data works?
You might like some of my stuff: Plantlife ~ More Trees ~ Home Decor ~ Pipeworks ~ HDX Textures (64-512px)

Jordach
Member
Posts: 4534
Joined: Mon Oct 03, 2011 17:58
GitHub: Jordach
IRC: Jordach
In-game: Jordach
Location: Blender Scene

by Jordach » Post

Re: Rooting my device?

Stu, that's a no.

User avatar
Splizard
Member
Posts: 227
Joined: Wed Jan 25, 2012 07:20
GitHub: Splizard
IRC: Splizard
In-game: Splizard
Location: New Zealand
Contact:

by Splizard » Post

stu wrote:Glad to hear it works at least, though I would have expected a slightly better framerate on something like that.
Are you testing in single or multi player mode?
Singleplayer, the framerate is only slightly worse then the desktop version on that device.
Last edited by Splizard on Fri Feb 14, 2014 04:15, edited 1 time in total.
Games: Builda City, The Hungry Games Mods: Lifters, Snow Biomes and Gates. Also checkout my texture pack Gridtoon!

Sokomine
Member
Posts: 4276
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine
IRC: Sokomine
In-game: Sokomine

by Sokomine » Post

This works amazingly well! I've dested this version in singleplayer and on servers with small media data (VanessaEs vanilla server, Redcrabs server). The view distance is admittedly low on my rather cheap phone - yet 20 blocks are usually enough for small houses, and it runs smoother than the desktop version did on my old integrated graphics.

Starting a new singleplayer world took several minutes. Guess that's due to the slow CPU and nothing to complain about. Connecting to servers is more than fast enough.

The client even managed to connect to VanessaEs survival server! At least to a degree. It took several attemts, i had to hit "wait" when the app didn't react like 20 times (until media was downloaded), fps where at about 1-3, and it crashed pretty soon (probably case of ran out of memory). With a server with that many mods installed, it's no big surprise. It's rather a surprise that it worked at all :-) Players with better phones/tablets might have success even there.

The keybord problem is a bit annoying as it seems necessary to return to the home screen shortly and then go back to the game in order to get rid of the keyboard. The controls as such work fine, although I personally find it a bit difficult to steer that way. Other people seem to have way less trouble with it. Would it be possible to use the direction sensors of the phone/tablet as a replacement for the mouse? That might make control a lot easier. Most of the time, going/running forward is enough. If the client could only continue to walk forward until a stop-button was touched, that'd be even greater! And very useful on the desktop version as well.

Having a way to type in chat messages, to open the chatlog (F12), perhaps F2 (hide chat so that some formspecs can be operated), controls for sending "/spawn" and "/status" to the server and a disconnect-button might be great as well. Not beeing able to chat is the biggest remaining issue.

So: Great work! Please work a bit on the controls (especially chat; if possible, sensors for mouse control and some addidtional buttons). The game itshelf runs very fine already.
A list of my mods can be found here.

sfan5
Moderator
Posts: 4094
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5
Location: Germany

by sfan5 » Post

Sokomine wrote:Would it be possible to use the direction sensors of the phone/tablet as a replacement for the mouse? That might make control a lot easier.
Imagine you are sitting in a train, you won't have much luck with using the movement sensors for controlling.
Mods: Mesecons | WorldEdit | Nuke & Minetest builds for Windows (32-bit & 64-bit)

User avatar
Novacain
Member
Posts: 285
Joined: Sat Aug 31, 2013 01:03
Location: Skaaro

by Novacain » Post

Sokomine wrote: (until media was downloaded),
I assume this means you can't select a setting for "preload item visuals"? also, does it start with shaders, or anything like that?
EXTERMINATE!!!
My Tronrealm modpack
My tronblocks mod

User avatar
stu
Member
Posts: 923
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11
Location: United Kingdom

by stu » Post

Some minor updates.

Made it possible to close the soft-keyboard
Added a simple chat mechanism

Note: These should be considered as workarounds until better solutions are found.

The apk file has been updated: debug.apk

You will need to delete your sdcard/minetest directory if you are updating a previous installation.

VanessaE: I made a slight change to the manifest that may (or may not) help in your case. Please let know the outcome if you try it.
Note: This change is only in the current debug.apk and has not yet been pushed to the repo.

Cheers.
Last edited by stu on Sun Feb 16, 2014 19:01, edited 1 time in total.

User avatar
VanessaE
Moderator
Posts: 4655
Joined: Sun Apr 01, 2012 12:38
GitHub: VanessaE
IRC: VanessaE
In-game: VanessaE
Location: Western NC
Contact:

by VanessaE » Post

After resetting my tablet to factory defaults, rooting it, re-installing my usual set of apps (but without SwitchMe), I re-tried sfan5's build (because it was handy), which failed as previously described. I uninstalled it, removed the minetest data dir, and installed your above debug.apk like so:
Spoiler
vanessa@rainbird:~$ sudo /opt/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb install Minetest-debug.apk
[sudo] password for vanessa:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
4953 KB/s (8346523 bytes in 1.645s)
pkg: /data/local/tmp/Minetest-debug.apk
Success
As you can see, it went in clean, or so thinks adb anyway. I then went to the tablet's ":::" menu, dragged the "Minetest" icon to my usual page on the home screen, and tapped it, which crashed with a "Minetest has stopped" dialog right away. Logcat shows the same sort of error as before:
Spoiler
I/ActivityManager( 264): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.minetest/android.app.NativeActivity bnds=[524,407][596,479] u=0} from pid 467
D/AudioHardware( 90): AudioHardware pcm playback is exiting standby.
D/AudioHardware( 90): openPcmOut_l() mPcmOpenCnt: 0
D/dalvikvm( 1653): Late-enabling CheckJNI
I/ActivityManager( 264): Start proc org.minetest for activity org.minetest/android.app.NativeActivity: pid=1653 uid=10068 gids={3003, 1028, 1015}
I/dalvikvm( 1653): Turning on JNI app bug workarounds for target SDK version 9...
D/AndroidRuntime( 1653): Shutting down VM
W/dalvikvm( 1653): threadid=1: thread exiting with uncaught exception (group=0x4137b300)
E/AndroidRuntime( 1653): FATAL EXCEPTION: main
E/AndroidRuntime( 1653): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.minetest/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to find native library: Minetest
E/AndroidRuntime( 1653): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
E/AndroidRuntime( 1653): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
E/AndroidRuntime( 1653): at android.app.ActivityThread.access$600(ActivityThread.java:130)
E/AndroidRuntime( 1653): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
E/AndroidRuntime( 1653): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1653): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 1653): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime( 1653): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1653): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 1653): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime( 1653): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime( 1653): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1653): Caused by: java.lang.IllegalArgumentException: Unable to find native library: Minetest
E/AndroidRuntime( 1653): at android.app.NativeActivity.onCreate(NativeActivity.java:195)
E/AndroidRuntime( 1653): at android.app.Activity.performCreate(Activity.java:5008)
E/AndroidRuntime( 1653): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
E/AndroidRuntime( 1653): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
E/AndroidRuntime( 1653): ... 11 more
W/ActivityManager( 264): Force finishing activity org.minetest/android.app.NativeActivity
Here's what got installed, and where:
Spoiler
vanessa@rainbird:~$ sudo /opt/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb shell
root@android:/ # find / |grep -i minetest
/data/app/org.minetest-1.apk
/data/dalvik-cache/data@app@org.minetest-1.apk@classes.dex
/data/data/org.minetest
/data/data/org.minetest/cache
/data/data/org.minetest/cache/com.android.renderscript.cache
/data/data/org.minetest/lib
/data/data/org.minetest/lib/gdbserver
/data/data/org.minetest/lib/libMinetest.so
I did a quick check online last night after my last try with sfan5's build, the "hardware" mentioned below is the "Cortex A9" variant of the ARMv7 processor. Seems a lot of developers have trouble with this particular chipset in multiple tablets.
Spoiler
root@android:/ # cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 431.85
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0

Hardware : RK2928board
Revision : 0000
Serial : 0000000000000000
The Buildcraft APK as obtained from the Playstarz website installs, starts, and is able to join the simpler servers just fine on this tablet. It'll eventually crash on anything more complex than my Nostalgia server, and the fps sucks, but it DOES run. I attribute those issues to bugs in the engine, inefficient memory management, and inability to turn off things like shaders and preloading of item visuals, etc.
You might like some of my stuff: Plantlife ~ More Trees ~ Home Decor ~ Pipeworks ~ HDX Textures (64-512px)

User avatar
stu
Member
Posts: 923
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11
Location: United Kingdom

by stu » Post

VanessaE wrote: As you can see, it went in clean, or so thinks adb anyway. I then clicked the icon on the tablet, which still crashes right away, before showing the menu. Logcat shows the same sort of error as before.
Thanks for the update. I have read reports that setting android:hasCode true in manifest can sometimes fix this error.
That really should not be so and is clearly not the problem in your case, at least we can rule that one out.
If buildcraft works then I am confident there will be a way to make this work
Last edited by stu on Sun Feb 16, 2014 20:10, edited 1 time in total.

User avatar
VanessaE
Moderator
Posts: 4655
Joined: Sun Apr 01, 2012 12:38
GitHub: VanessaE
IRC: VanessaE
In-game: VanessaE
Location: Western NC
Contact:

by VanessaE » Post

Yeah when I was researching this last night (well, early this morning, my time) that's what I was finding as well, though obviously it doesn't apply here. The only other thing I came up with was that app authors often have to build for several common processor types and package them together because tablets often fail to correctly report what kind of processor (or variant thereof) they *really* contain.

But, as I told sfan5 last night, this is Android and I don't know wtf I'm doing here. :-)
You might like some of my stuff: Plantlife ~ More Trees ~ Home Decor ~ Pipeworks ~ HDX Textures (64-512px)

spillz
Member
Posts: 138
Joined: Thu Feb 13, 2014 05:11

by spillz » Post

I tried debug.apk on a Samsung Galaxy Note 2 (phone) and Asus MemoPad HD 7 (mediatek chip)

Things worked surprisingly well on my Note 2. I could play both single player and connect to a server on my LAN. Got anywhere between 20 and 50 fps, and a draw distance of up to 50 nodes (if I am interpreting correctly). Issues:

1. The first time you start minetest it just hangs. I killed the process and restarted a couple of times. Could be its just doing a lot of one time initialization.
2. Back button doesn't get you to the menu
3. I found that unless I was actively moving my finger on the screen holding the onscreen move/interact buttons would stop working. (i.e. the screen needed constant input signals, it wasn't enough to hold the finger over a button)
4. The position of the jump button makes it almost impossible to move and jump at the same time. Would be much nicer if jump was on the other hand (minecraft PE has the center position to jump and it's really hard to use too)
5. Hiding keyboard issue (I just held the home button and went back to the app to make it disappear)
6. No fly, fast, chat controls

The MemoPad struggled a lot more. More like 7 to 20 fps and lower draw distance. Also the controls did not display at all. (But the inventory controls did appear.) It also exhibited all of the issues above.

I started following stu's github repo, and would like to try out building the sources myself and contribute a patch or two if I am able. I have a decent amount of C/C++ programming experience and familiarity with a lot of open source stuff, but android SDK/NDK is relatively new to me as is Irrlicht, so it would be a bit of a learning curve. Tips on building if I have trouble would be appreciated.
Last edited by spillz on Mon Feb 17, 2014 16:17, edited 1 time in total.

User avatar
stormchaser3000
Member
Posts: 422
Joined: Sun Oct 06, 2013 21:02
GitHub: stormchaser3000

by stormchaser3000 » Post

OK how on earth do I install this

User avatar
stormchaser3000
Member
Posts: 422
Joined: Sun Oct 06, 2013 21:02
GitHub: stormchaser3000

by stormchaser3000 » Post

i can' run it it crashes on start up

spillz
Member
Posts: 138
Joined: Thu Feb 13, 2014 05:11

by spillz » Post

stormchaser3000 wrote:i can' run it it crashes on start up
What hardware? Did you try launching a few times?

User avatar
stormchaser3000
Member
Posts: 422
Joined: Sun Oct 06, 2013 21:02
GitHub: stormchaser3000

by stormchaser3000 » Post

i have a proscan non rooted and yes i launched it like twice

Locked

Who is online

Users browsing this forum: No registered users and 5 guests