Beiträge von Gravedigger
-
-
Jon hat sicher recht, aber mir ist aufgefallen, dass das Forum Entwicklerfragen, welches sicher das Hauptforum ist, aus allen Nähten quillt. Einzelne Fragen gehen dort schnell in der Masse unter, so dass sich dort eine Unterteilung evtl. lohnen würde. Auf jeden Fall wäre ein Forum für SQLite angebracht, da dies ein wichtiges zentrales Element von Android darstellt, aber in der Benutzung doch recht kompliziert ist. Ich selber hatte viele Probleme die ich nun mühsam gelöst habe. Aber es werden sicher noch weitere Fragen auftauchen und deren Lösung möchte ich den Leuten auch gerne weitergeben. Ich will den Thread des SQLite Tutorials allerdings ungern noch weiter zumüllen...
-
Das hilft leider auch nicht. Habe sogar versucht den DB Namen direkt als String in den Befehl zu schreiben. Aber sobald der Befehl aufgerufen wird, stürzt das Programm ab, bzw. wird vom Catch abgefangen. Ich weiß nicht mehr weiter, im Prinzip ist der Befehl doch viel zu einfach um was falsch machen zu können. Hab mich wochenlang mit allen GUI-Elementen und Android-Eigenschaften vertraut gemacht und jetzt kann ich mit meinem Projekt nicht loslegen weil ich die Datenbank nicht initialisiert kriege...!?
Gibt es vielleicht irgendwo die Möglichkeit sich eine Fehlermeldung ausgeben zu lassen? Eine log-Datei von SQLite oder irgendetwas das mir sagen könnte was schief läuft?
Java
Alles anzeigenpackage org.me.ganjatest; import android.database.sqlite.*; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.widget.SimpleCursorAdapter; import android.widget.Toast; public class dbLite extends Activity{ private SQLiteDatabase myDB = null; private gmDebug deb = new gmDebug(); final static String MY_DB_NAME = "ganjaDB"; public dbLite() { deb.out("dbLite", "Konstruktor wird ausgeführt"); onCreateDBAndDBTabled(); } private void onCreateDBAndDBTabled() { try { deb.out("dbLite", "versuche Datenbank zu öffnen"); myDB = this.openOrCreateDatabase(dbLite.MY_DB_NAME, MODE_PRIVATE, null); } catch (Exception e) { deb.out("dbLite", "offnen der Datenbank fehlgeschlagen"); } } }
-
Hallo..
...ich wüsste gerne, warum im Emulator des Android SDK's kein Android Market enthalten ist und ob es möglich ist, diesen hinzuzufügen. Zum testen von externer Software hab ich mir jetzt Android x86 in einer VM Ware installiert, dort kann ich zwar Apps aus dem Android Market installieren, jedoch nicht meine eigenen Apps testen, so dass diese Lösung etwas umständlich ist.
Hat jemand eine Idee?
-
Hallo liebe Leute. Ich möchte hier mein Manager-Game vorstellen, das vor einigen Jahren schon als Browsergame ziemlich erfolgreich war.
Gegenstand des Spieles ist eine Pflanze mit dem Namen Cannabis Indica, die ihr kultivieren und wie ein Tamagotchi hegen und pflegen müsst. Wenn ihr das gewissenhaft tut, wächst sie jeden Tag um einige Pixel und ihr könnt sie nach einigen Wochen ernten. Dann könnt ihr einen Preis festlegen und das gute Kraut verkaufen. Da es sich um ein online-Game handelt, werden andere Spieler das gleiche tun und es ensteht ein Markt und ein Wettstreit um Angebot und Nachfrage.
Hat man sein Ware vertickt, kann man in eine bessere Ausstattung wie Quecksilberdampflampen oder größere Gewächshäuser investieren, um sein Geschäft zu expandieren.Zur Technik:
Serverseitig kommen wie beim Browsergame PHP-Scripte und eine MySQL-Datenbank zum Einsatz. Viele Scripte werd ich auch mit Äderungen übernehmen können, die Grafiken alleine wegen des Wiedererkennungswertes.
Auf dem Handy, soll SQL-Lite als Datenbank laufen, um die Objekte zu verwalten, die sich nicht nach außen auswirken. So kann der Spieler auch ohne Internetverbindung seine Pflanzen anschauen, pflegen oder seinen Fuhrpark verwalten.Mein ehrgeiziges Ziel ist es, eine sehr hohe Spieltiefe und langzeitmotivation zu erzeugen. Es soll kein Spiel werden vor dem man jeden Tag Stunden verbringt, sondern dem man sich jeden Tag nur einige Minuten widmen muss aber über viele Monate hinweg spannend bleibt.
-
Das bringt mich doch glatt auf eine Idee:
Man bräuchte eine Möglichkeit, dass man bei neuen Foreneinträgen gleich eine Notification auf seinen Emulator bzw. Handy bekommt. Das müsste doch mit ner kleinen App und evtl. einer kleinen Anpassung am Forum machbar sein...
-
Jaaaa - schönes Forum, man merkt aber doch, dass Android noch ein sehr junges System ist. Viele interessierte Jungprogrammierer, viele einfache und sinnvolle Fragen, aber leider (noch) sehr wenige Antworten.
Daher Antworte ich mir jezze mal selbst:
Im Ordner tools des Android SDK's gibt es das Programm adb.exe, welches viele nützliche Funktionen bereit stellt. Eine davon ist die Debug-Konsole, welche mittels
adb logcat
aufgerufen wird. Die alleimeisten Meldungen sind zwar sogar für mich als langjähriger Informatiker zu kryptisch und wann de Dalvik VM die carbage collection ausführt interessiert mich eigentlich auch nicht so brennend, aber immerhin hat sie mich schon mehr als einmal darauf hingewiesen, dass ich vergessen habe meine Activity in die Manifest.xml einzutragen.
Interessand ist jedoch die Möglichkeit eigenen Debug-Code auszugeben:
Log.d("Titel","Text" );
Als Titel verwende ich immer den Klassennamen und in den Text schreibt ihr euren Debug Text. Habe auch gleich eine kleine Klasse geschrieben, die den Debug Text etwas aus dem restlichen Zeichensalat hervorhebt:
Java
Alles anzeigenimport android.util.Log; /** * * @author Florian */ public class gmDebug{ private static gmDebug instance = null; private Log deb = null; public static gmDebug getInstance() { if (instance == null) { instance = new gmDebug(); } return instance; } public void out(String tit, String tex) { int d = Log.d(tit,"------------------------------------------------------------" ); d = Log.d(tit, tex ); d = Log.d(tit,"------------------------------------------------------------" ); } }
Habe die Klasse zu Testzwecken als Singleton geschrieben, kann aber auch ganz normal instanziert werden:
und verwenden mit
In der Konsole erscheint dann parallel zum Programm der entsprechende Debug-Text.
-
hmm, dafür gibts doch das Tutorial-Forum. Das find ich gut und da steht eigentlich alles drin, was man für den Anfang wissen muss und Fragen kann man dann direkt dort.
Beschäftige mich erst seit zwei Wochen mit Android und hab von dort eigentlich alle Grundlagen gelernt.Achja, das "Eigene-Projekte" Forum ist immer noch nicht eingerichtet...!
-
Jo, ansich ein schönes und leicht verständliches Tutorial. Allerdings scheitert es bei mir schon beim Erstellen der Datenbank mit
MY_DB_NAME ist korrekt definiert und myDB initialisiert und die sqlite Klasse natürlich eingebunden.
Habe danach versucht Tabellen anzulegen und Datensätze zu schreiben, aber die Activity ist sofort abgestürzt. Die IDE hat beim Compilieren keinen Fehler gezeigt und der ADB Debugger hat auch nicht ausgespuckt dass mir weiter geholfen hätte.
Nachdem ich alle Anweisungen in Try-Catch Blöcke gepackt habe, stellte sich heraus, dass schon das Erstellen der DB fehl schlägt.Hat jemand eine Idee?
-
ja, nach einigem Suchen wurde ich fündig. Das von mir gesuchte GUI-Element heißt bei Android SeekBar:
-
Hallo...
...des öfteren habe ich das Problem, dass ich ein Programm ohne Fehlermeldung compilieren kann, der App stürzt jedoch beim Start oder anderer Stelle mit einer nichtssagenden Meldung ab (Programm wurde unerwartet beendet).
Oft reichen dazu schon kleinste Fehler in der Definition der Layout-Dateien. Gibt es einen Debugger, der innerhalb des Emulators/Handys läuft und einem eine etwas genauere Fehlerbeschreibung liefert?
-
Nee, ich benutze NetBeans mit bAndroid Plugin.
Eclipse ist mir zu überladen und mit NetBeans entwickel ich schon seit längerem PHP. -
Die Android GUI hält eine Spezielle Klasse "Preferences" bereit, mit der man auf einfachste Weise Optionsmenüs erstellen kann.
Für die Optionsseite benötigst du dann lediglich ein ganz einfaches Activity, die Definition der Optionselemente geschieht über die strings.xml.Natürlich muss die Optionsseite auch in der manifest.xml eingetragen werden:
HTML
Alles anzeigen<?xml version="1.0" encoding="UTF-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.me.spieltest"> <application> <activity android:name=".SpielActivity" android:label="mein Spiel"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".gameOptions" android:label="Spiel Einstellungen"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
In der strings.xml die Optionselemente definieren:
HTML
Alles anzeigen<string name="main_menu_options_prefs_title">Preferences</string> <string name="pref_account_title">Game account preferences</string> <string name="pref_account_username_title">Username</string> <string name="pref_account_username_summary">Login und Playername</string> <string name="pref_account_username_dialogTitle">Enter Login Name:</string> <string name="pref_account_password_title">Password</string> <string name="pref_account_password_summary">Login Password</string> <string name="pref_account_password_dialogTitle">Enter Password:</string> <string name="pref_game_title">Gameoptions</string> <string name="pref_inet_title">Internet</string> <string name="pref_inet_summary">Permit Internet-connection </string> <string name="pref_inet_dialogTitle">Internet:</string>
Der Wert des Attributs name ist dabei nicht frei wählbar, sondern
der Code des Activitys gestaltet sich dann sehr einfach:
Java
Alles anzeigenpackage org.me.spieltest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.view.Menu; import android.view.MenuItem; import android.preference.PreferenceActivity; public class gameOptions extends PreferenceActivity implements OnClickListener { private Button backButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // create widgets from preferences XML file addPreferencesFromResource(R.xml.preferences); } @Override public void onClick(View v) { if (v == backButton) { startActivity(new Intent(gameOptions.this, SpielActivity.class)); } } }
Das interessante an der Sache ist u.A., dass - zumindest bei mir im Emulator - die auf diese Weise getätigten Einstellungen automatisch gespeichert werden (würd mich mal interessieren wo) und beim nächsten Start der App erhalten bleiben.
Ich empfehle auch, sich einmal die entsprechende Seite der offiziellen Android-Referenz anzuschauen:
http://developer.android.com/r…erence/package-descr.htmlNachtrag:
Beim Stöbern in der Android Referenz bin ich auf eine Andere Lösung gestoßen, bei der im Gegensatz zu meinem Beispiel eine XML Layout-Datei verwendet wird.
Die von mir beschriebene Variante funktioniert bei mir auf jeden Fall, würd mich trotzdem freuen, wenn jemand mal die Unterschiede sowie Vor -und Nachteile der beiden Vorgehensweisen beschreiben könnte...
-
Hallo allerseits...
..ich möchte ein Manager-Spiel unter der Andoid GUI erstellen, allerdings vermisse ich einige GUI-Elemente wie eine Slider Bar. Diese würde es ermöglichen, Zahlenwerte blitzschnell einzugeben, bzw. auszuwählen. GIbt es so etwas wie GUI-Erweiterungen die sich optimalerweise in das GUI-Konzept von Android einfügen?
Und falls das nicht der Fall sein sollte, wie könnte man sich so einen Slider basteln? Mir gehen da zwei Ideen durch den Kopf:
1. Einen Button, der sich per Touchscreen in einem Gewissen Bereich verschieben lässt. Weiß jemand, ob sich Buttons für sowas missbrauchen lassen?
2. Ein eingebettetes Canvas-Element, in dem ich den Slider durch einen Sprite erzeuge. Aber kann man ein kleines Canvas-Element innerhalb der GUI platzieren?
..bin über jede Hilfe oder anregung dankbar.
-
Hey, nettes Forum. Aber auch ich hätte noch einige Anregungen für die Aufteilung...
...aus anderen Entwicklerforen kenne ich es so, dass es ein Unterforum für Userprojekte gibt, in dem die User ihre eigenen Projekte vorstellen und die Entwicklunmg fortlaufend kommentieren. An stellen wo ein User nicht weiter kommt, kann er dann gleich um Hilfe schreien. Anderen Usern wird es dadurch ermöglicht den Fortschritt zu verfolgen und Problemlösungen Projektorientierter anzubieten, da sie den bisherigen Verlauf der Entwicklung zurückverfolgen können.
-
Jop, ich plane für mein Manager-Spiel eine ähnliche vorgehensweise. Komme aus dem MySql-PHP Bereich und bin noch dabei mich mit dem Android Framework anzufreunden sowie meine Java-Kenntnisse aufzufrischen.
Ich dachte mir, den Datenaustausch zwischen Android und MySQL-Server über https-Abfragen mit Parametern an ein PHP-Script zu senden. Interessanter ist da die Frage der Codierung, denn Arrays und Objekte lassen sich schlecht in einem URL-String übertragen. Habe da bisher vielversprechende Ergebnisse mit dem JSON-Format erzielt, dass einem Variablen, Array und Objektzustände in einen String codiert und sich dann Serverseitig wieder in die Ursprungsobjekte umwandeln lassen. Die JSON-Klassen gibt es sowohl unter java als auch in PHP.
Hoffe, ich konnte weitere Fragen schon vorwegnehmen...^^