This site requires JavaScript, please enable it in your browser!
Greenfoot back
dibo
dibo wrote ...

2013/9/17

Greenfoot-Scenarios on Android Devices

1
2
3
dibo dibo

2013/10/2

#
Droidfoot 2.0 is ready: http://www.programmierkurs-java.de/droidfoot Changes: - some bug fixes and optimations - class GreenfootSound implemented - class UserInfo implemented - the rotation of an Actor will now be considered when dealing with touch or collision detection - customizing the action bar and menu of the android player in the App-Activity class by setting appropriate attributes - example DFSnake changed (a highscore table has been integrated)
Gevater_Tod4711 Gevater_Tod4711

2013/10/20

#
I always get an error message when I try to run a game (also the example games). It says: invalid resource directory name: C:\Daten\Schule\Informatik\Java\Eclipse\eclipse-workspace-droidfoot\Droidfoot\bin\res/crunch Unfortunately I have no idea how to fix this. Can anyone help me with this problem?
dibo dibo

2013/10/21

#
I guess you defined a subfolder "crunch" in folder "res". Folders in the res-Folder are only allowed to be those defined by Android, for example "drawable". See http://developer.android.com/guide/topics/resources/available-resources.html for more information. If you choose anything else you get the error "invalid resource directory name" when building your project.
Gevater_Tod4711 Gevater_Tod4711

2013/10/21

#
I didn't define any subfolders (at least not knowingly). I just downloaded Droidfoot 2.0, choose the new workspace and I got this error in all games.
Gevater_Tod4711 Gevater_Tod4711

2013/10/21

#
Ok I checked this folder and you were right. There was this directory. I deleted it and now it's working fine. So thanks for the help. But I still haven't got any idea where this directory came frome. But however, now it works.
Gevater_Tod4711 Gevater_Tod4711

2013/10/21

#
I already got the next problem. When I try importing my projects form Droidfoot 1.0 into the new workspace I get some errors at the Android Manifest.xml file. E.g. it says: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/droidfoot_launcher'). AndroidManifest.xml /Cardgames line 10 Android AAPT Problem and some more of this errors. Am I doing something wrong?
dibo dibo

2013/10/21

#
I guess you did not copy the project in the new workspace but only references the old project. In dialog "Import Projects" you have to mark the field "copy project into workspace".
Gevater_Tod4711 Gevater_Tod4711

2013/10/21

#
I'm not quite shure if I marked this field. I'll try. Thanks for the advice.
Tais Tais

2013/11/18

#
@dibo I tried the package on the other Snake scenario since I didn't find yours: http://www.greenfoot.org/scenarios/773 I edited the scenario so it is running on android simulator and the sound works. But none of the images do :( I see just the score and the big sign "Game over" when the game is to the end. The image folder is in assets as it was described in the video, and in Greenfoot everything is functioning. Thanks!!!
dibo dibo

2013/11/20

#
Tais: Please send me your eclipse-project (boles(at)informatik.uni-oldenburg.de). I will test it.
Tais Tais

2013/11/20

#
Thanks! It is sent...
GreenHouse GreenHouse

2013/12/8

#
Hey dibo :) ich versuche zurzeit die Option 'Export to APK' in Greenfoot einzubinden; leider nur mit mittelmäßigem Erfolg. Das hauptsächliche Problem dabei; dass man nicht um den Download der Android SDK drum herum kommt, da nur diese die apk mit der classes.dex erzeugen kann. Was gibts da noch für Alternativen? Meine erste Idee war; die class Dateien in den assets einer fertigen apk zu kopieren; diese lädt dann die classes dynamisch:
public void run() {
	
	try {

		File dummyClass = copy("net/metropy/SamplePackage.class");
		
		
		
		URL[] urls = new URL[] {mainActivity.getFilesDir().toURL()};
		
		ClassLoader cl = new URLClassLoader(urls);
		
		
		Class cls = cl.loadClass("net.metropy.SamplePackage");
		
		Object object = cls.newInstance();
		
		Method m = cls.getDeclaredMethod("getSample", null);
		
		String retr = (String) m.invoke(object, null);
		
		
	} catch (Exception e) {
		e.printStackTrace();
	}
}

private File copy(String file) {
	
	InputStream is;
	try {
		is = mainActivity.getAssets().open(file);
		File dummyClass = new File(mainActivity.getFilesDir().getAbsoluteFile()+file);
		dummyClass.getParentFile().mkdirs();
		if(dummyClass.exists()) {
			dummyClass.delete();
			dummyClass.createNewFile();
		}
		
		FileOutputStream os = new FileOutputStream(dummyClass);
		
		byte[] buffer = new byte[1000];
		int bytes;

	    
	    while ((bytes = is.read(buffer)) != -1)
	    {
	        os.write(buffer, 0, bytes);
	    }
		
		os.close();
		is.close();
		
		return dummyClass;
		
	} catch (IOException e) {
		e.printStackTrace();
	}
	
	return null;
}
Anscheinend lädt der ClassLoader unter Android gar keine Java class files; nur die dex. Zweite Idee war, die .java Code Datein einer fertigen APK einzuführen; diese compiliert dann erst auf dem Device die Quellcode Datein und führt den Code aus; da scheiterts bei mir aber schon am automatischen Compilen und Starten des Codes. Hast du da vlt bessere Ansätze wie man das machen kann? :) PS: geht nicht; gibts nicht ;)
dibo dibo

2013/12/9

#
GreenHouse wrote...
ich versuche zurzeit die Option 'Export to APK' in Greenfoot einzubinden; leider nur mit mittelmäßigem Erfolg. Das hauptsächliche Problem dabei; dass man nicht um den Download der Android SDK drum herum kommt, da nur diese die apk mit der classes.dex erzeugen kann.
Das ist (leider) korrekt.
GreenHouse wrote...
Anscheinend lädt der ClassLoader unter Android gar keine Java class files; nur die dex.
Auch das ist (leider) so.
GreenHouse wrote...
Hast du da vlt bessere Ansätze wie man das machen kann? :)
Ich habe das hier in Oldenburg mal im Rahmen einer Bachelorarbeit austesten lassen. In der Tat muss man wohl die Android SDK herunterladen. Auch die Menge an Einstellungen, die ein Programmierer dann zu leisten hat, ist eher unschön (insbesondere für Programmieranfänger). Eine Möglichkeit, die ich noch sehe, besteht darin, beim Export die Daten auf einen externen Server zu schicken, auf diesem dann die apk-Datei automatisch zu erstellen und diese als Ergebnis zurücksenden. dibo.
GreenHouse GreenHouse

2013/12/9

#
danke für die Antwort :) Das ist sicher eine schöne Bachelorarbeit, wo man dann feststellt, dass es nicht geht :D
dibo wrote...
... beim Export die Daten auf einen externen Server zu schicken, auf diesem dann die apk-Datei automatisch zu erstellen und diese als Ergebnis zurücksenden.
Oh ich glaube da müsste man lange mit davmac und mrj4b diskutieren, damit sowas eingerichtet werden könnte :) Du kennst nicht zufällig einen Traffic Junkie; der sicher dieser Aufgabe mal als Bachlorarbeit annehmen könnte? :D Würde es nicht reichen vom Server die dex generieren zu lassen? Und solche Geschichten sind auch keine Lösung? zB das die Class bzw Dex immer beim starten der App generiert wird? Hast du mit sowas schon Erfahrung bzw das mal testen lassen? (klingt doch nach einer Aufgabe für 'Praktikum Fortgeschrittene Java-Technologien' WS13/14, oder? :D ) btw; Entschuldigung dass ich ich immer duze; wenn's anders lieber ist dann bitte sagen ;)
dibo dibo

2013/12/10

#
Leider habe ich an der Uni Oldenburg andere Aufgabengebiete zugeordnet bekommen und für Greenfoot, meinen Hamster und ähnliche Dinge so gut wie keine Zeit mehr (nur noch Hobby). Mal schauen, wann ich mich mal wieder mit der Thematik auseinandersetzen kann. Duzen ist übrigens völlig ok. Wenn ich mich richtig erinnere, bietet übrigens eine Alternative zu Greenfoot (JGameGrid mit der JDroidLib) die Lösung mit dem Server: http://www.aplu.ch/home/apluhomex.jsp?site=99
There are more replies on the next page.
1
2
3