Buch fehlerhaft? Oder bin ich blind?

E

emha

Neues Mitglied
0
hallo zusammen,

habe mir mal das online tutorial geladen und ausprobiert. Nun, zu meinem Problem/Anliegen:

Ich war bei dem Staumelder. Das erste Beispiel lief super, ohne Probleme, nun beim zweiten aber kommen total viele Fehler in Eclipse, obwohl ist genau abgeschrieben habe. Dann dachte ich mir egal, kopierst es halt. Nach dem einfügen waren genau die selben Fehler da.

Woran liegt das? Habe dann mal gegoogelt und da hatte jemand fast das Gleiche Problem. Er hat auch nach dem tut gearbeitet. Ihm wurde gesagt, dass er in der xml, ich glaube Strings wars, etwas ändern muss, was aber in dem tut zu dem Zeitpunkt zu keiner Hinsicht erwähnt wurde. Fehlt da was? Oder setzt das Buch Grundwissen in der Androidprogrammierung voraus?

Habe mich dann mal nach einem anderen Buch umgeschaut aber jetzt nicht wirklich was gefunden nur "Android 2" von dem selben Schreiber. Da ich nun aber mit dem 1. Buch so Probleme hatte, weiß ich nicht, ob das so gut ist, wenn ich mir das andere Buch hole.

Ich bin jetzt auch nicht wirklich ein Anfänger, wenn es um Java geht, nur halt komplett wenn es um Android geht :p


Würde mich freue, wenn ihr mir helfen könntet und evtl. ein 2. Buch empfehlen könntet :)


Liebe Grüße,
emha
 
Welchen Fehler hast du denn? Kannst in Eclipse die Problem View aufmachen, da wird alles aufgelistet. Du sagst du hast Fehler aus einem Buch mit einem Tutorial, aber du sagst nicht welches Buch und welche Fehler?! Wie soll man dir dann helfen?!
 
Ach, sry, aus dem Newbie Guide aus dem app entwicklungsforum. Dort das "Android" tutorial, das buch heißt einfach nur Android.

Eclipse hat mir schon vorschläge gemacht, ein paar gingen, ein paar nicht. Aber das was eclipse sagte, damit das programm läuft, wird in keinster Weise im Buch erwähnt.

Grüße,
emha
 
Es geht nicht darum, was Eclipse dagegen vorschlägt. Nur die Fehlermeldung ist interessant und dann muss man selber entscheiden, was man dagegen macht. Also sag bitte, was es für Fehler sind?! Das hilft am meisten! Programmieren sollte man schon selber, Eclipse ist nur ein Werkzeug, mehr auch nicht!

Grüße
 
Mein Problem geht in die gleiche Richtung. Ich habe das Beispiel Staumelder aus dem Buch Android 2.Auflage (siehe Link) verwendet.
dpunkt.verlag | E-Books

Anschließend habe ich das Beispiel, um die Pakete "import android.widget.ArrayAdapter; import android.widget.Spinner;" ,
in der Zeile Spinner s1 = (Spinner)findViewById(R.id.stauUrsache); Stauursache in stauUrsache geändert und
die Datei arrays.xml unter den Pfad res/values/ gespeichert. (siehe Anweisung: Korrektur)

Als Letztes wurde die R.java vom System automatisch verändert. ("Create field array in R.Java")

Im Run kommt folgende Fehlermeldung the application Einstiegsbeispiel(process de.androidbuch,staumelder) has stopped unexpectedly. Please try again.

Wo liegt der Hund begraben?
 
Nachtrag: Ich benutze Android 1.5.
 
Poste mal den Rest der Meldung!
 
Ich lese auch zur Zeit die 2. Auflage des Buches...sind schon mächtig viele Fehler drin.
Meistens liegt es daran, dass vergessen wurde iwelche Klasse zu importieren...

Wenn du bei Eclipse mit der Maus über die rot unterstrichelten Stellen fährst, schlägt dir Eclipse meistens genau vor, was du zur Fehlerbehebung machen kannst.

Sonst lad einfach mal dein Projekt hoch, dann könnten wir uns das mal angucken.
 
Peter123 schrieb:
Ich lese auch zur Zeit die 2. Auflage des Buches...sind schon mächtig viele Fehler drin.
Meistens liegt es daran, dass vergessen wurde iwelche Klasse zu importieren...

Wenn du bei Eclipse mit der Maus über die rot unterstrichelten Stellen fährst, schlägt dir Eclipse meistens genau vor, was du zur Fehlerbehebung machen kannst.

Sonst lad einfach mal dein Projekt hoch, dann könnten wir uns das mal angucken.

Um das importieren musst du dich ja nicht kümmer das macht Eclipse für dich STRG + SHIFT + O

glaub mir die Beispiele von Google sind genauso Fehlerbehaftet :rolleyes2:
 
src/de.androidbuch.staumelder

package de.androidbuch.staumelder;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter; // im Beispiel nicht enthalten
import android.widget.Spinner; // im Beispiel nicht enthalten

public class StaumeldungErfassen extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
// Listeneinträge konfigurieren
Spinner s1 = (Spinner)findViewById(R.id.stauUrsache); // geändert von Stauursache in stauUrsache
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(
this, R.array.stauUrsachen,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
}
}

gen/.../R.java
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/

package de.androidbuch.staumelder;

public final class R {
public static final class array {
public static final int stauUrsachen=0x7f040000;
}
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int position=0x7f060000;
public static final int stauAnfang=0x7f060001;
public static final int stauEnde=0x7f060002;
public static final int stauUrsache=0x7f060003;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f050001;
public static final int hello=0x7f050000;
}
}
res/.../layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/
apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />

<RadioGroup android:id="@+id/position"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/stauAnfang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stauanfang" />

<RadioButton android:id="@+id/stauEnde"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stauende" />
</RadioGroup>

<Spinner android:id="@+id/stauUrsache"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true" />
</LinearLayout>

res/.../values/arrays.xml
<?xml version="1.0" encoding="utf-8"?>

<resources>
<array name="stauUrsachen">
<item>Unfall</item>
<item>Baustelle</item>
<item>Gaffer</item>
<item>Überlastung</item>
<item>Sonstige</item>
</array>

</resources>

res.../strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World,
StaumeldungErfassen</string>
<string name="app_name">Einstiegsbeispiel</string>
</resources>

Falls du den rest der Fehlermeldung meintest, dass ist alles. Auch der ?Compiler? zeigt keine weiteren Fehler an.
 
Ich meinte den Rest der Fehlermeldung aus dem DDMS View, dort dann das was im Logcat als Error erscheint.

Ansonste mal "Project" -> "Clean" versuchen, ist immer gern genommen :winki:
 
Ich hoffe ich habe dich richtig verstanden, dass sind die Meldungen unter dem Punkt Console. Problems/Javadoc usw. sind leer.

[2011-01-08 16:50:49 - staumelder] Android Launch!
[2011-01-08 16:50:49 - staumelder] adb is running normally.
[2011-01-08 16:50:49 - staumelder] Performing de.androidbuch.staumelder.StaumeldungErfassen activity launch
[2011-01-08 16:50:49 - staumelder] Automatic Target Mode: launching new emulator with compatible AVD 'my_avd'
[2011-01-08 16:50:49 - staumelder] Launching a new emulator with Virtual Device 'my_avd'
[2011-01-08 16:50:50 - staumelder] New emulator found: emulator-5554
[2011-01-08 16:50:50 - staumelder] Waiting for HOME ('android.process.acore') to be launched...
[2011-01-08 16:51:09 - staumelder] WARNING: Application does not specify an API level requirement!
[2011-01-08 16:51:09 - staumelder] Device API version is 3 (Android 1.5)
[2011-01-08 16:51:09 - staumelder] HOME is up on device 'emulator-5554'
[2011-01-08 16:51:09 - staumelder] Uploading staumelder.apk onto device 'emulator-5554'
[2011-01-08 16:51:09 - staumelder] Installing staumelder.apk...
[2011-01-08 16:51:21 - staumelder] Success!
[2011-01-08 16:51:21 - staumelder] Starting activity de.androidbuch.staumelder.StaumeldungErfassen on device emulator-5554
[2011-01-08 16:51:23 - staumelder] ActivityManager: Starting: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} comp={de.androidbuch.staumelder/de.androidbuch.staumelder.StaumeldungErfassen} }
 
Falls ein Error auftritt sollte der zumindest unter "Problems" auch in dieser Ansicht erscheinen.

Es gibt noch rechts oben einen Knopf auf dem DDMS steht, damit kannst du deine Anwendung debuggen. Unter anderem findest du dort ein Fenster names Log Cat das dir weitere Informationen zu Fehlern gibt.

Ich habe noch nicht verstanden wo dein Fehler liegt, hast du vielleicht mal einen Screenshot o.ä. von der Meldung?

Gruß
 
Ich habe mich oft über dieses Buch geärgert. Beispiele sind mir wichtig. Zu viele Fehler. Dann habe ich mir dieses Buch gekauft. Super. Die Beispiele dort funktionieren...

Lehmanns Online Bookshop

Gruss enrem
 
Sorry, aber das kann ich so nicht stehen lassen.
Scheinbar haben sich viel mehr über das von dir vorgeschlagene Buch geärgert:
Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren: Amazon.de: Heiko Mosemann, Matthias Kose: Bücher

Habe es mir aufgrund dieser deutlich schlechten Bewertungen nicht geholt. Allerdings werde ich es mir wegen deinem Posting nun doch mal ausleihen.

Mein Tipp:
Besorgt euch doch die neuste Auflage des in diesem Thread bemängelten Buches, Android 2, dort gibt es kein Stauprogramm mehr, sondern einen GPS Lokalisierer mit Routenanzeige. Ich mache es gerade durch:
Android 2: Grundlagen und Programmierung: Amazon.de: Arno Becker, Marcus Pant: Bücher

Im Übrigen handelt es sich erst um die 2. Auflage, folglich ist das in diesem Thread angesprochene Buch erst die 1. Auflage.

Weitere sehr gute Bücher findet ihr in der englischen Literatur:

Hello Android:
Hello, Android: Introducing Google's Mobile Development Platform Pragmatic Programmers: Amazon.de: Ed Burnette: Englische Bücher

Professional Android 2:
Professional Android 2 Application Development Wrox Programmer to Programmer: Amazon.de: Reto Meier: Englische Bücher

Diese sind teilweise noch aktueller und besonders das zweite hat einen wesentlich größeren Umfang gegenüber dem deutschen Buch und deckt alle Themen ab.


enrem schrieb:
Ich habe mich oft über dieses Buch geärgert. Beispiele sind mir wichtig. Zu viele Fehler. Dann habe ich mir dieses Buch gekauft. Super. Die Beispiele dort funktionieren...

Lehmanns Online Bookshop

Gruss enrem
 
moz-screenshot-5.png
moz-screenshot-6.png
moz-screenshot-7.png
Unter Problems erscheint keine Meldung.

Eintrag in Logcat, wobei ich nur Bahnhof verstehe:
01-08 16:25:05.490: DEBUG/dalvikvm(605): GC freed 1850 objects / 97128 bytes in 256ms
01-08 16:26:18.260: DEBUG/AndroidRuntime(750): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
01-08 16:26:18.270: DEBUG/AndroidRuntime(750): CheckJNI is ON
01-08 16:26:18.460: DEBUG/AndroidRuntime(750): --- registering native functions ---
01-08 16:26:18.470: INFO/jdwp(750): received file descriptor 20 from ADB
01-08 16:26:19.120: DEBUG/AndroidRuntime(750): Shutting down VM
01-08 16:26:19.120: DEBUG/dalvikvm(750): DestroyJavaVM waiting for non-daemon threads to exit
01-08 16:26:19.130: DEBUG/dalvikvm(750): DestroyJavaVM shutting VM down
01-08 16:26:19.130: DEBUG/dalvikvm(750): HeapWorker thread shutting down
01-08 16:26:19.143: DEBUG/dalvikvm(750): HeapWorker thread has shut down
01-08 16:26:19.143: DEBUG/jdwp(750): JDWP shutting down net...
01-08 16:26:19.150: DEBUG/jdwp(750): +++ peer disconnected
01-08 16:26:19.150: INFO/dalvikvm(750): Debugger has detached; object registry had 1 entries
01-08 16:26:19.150: DEBUG/dalvikvm(750): VM cleaning up
01-08 16:26:19.170: DEBUG/dalvikvm(750): LinearAlloc 0x0 used 629804 of 4194304 (15%)
01-08 16:26:19.619: DEBUG/AndroidRuntime(759): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
01-08 16:26:19.619: DEBUG/AndroidRuntime(759): CheckJNI is ON
01-08 16:26:19.810: DEBUG/AndroidRuntime(759): --- registering native functions ---
01-08 16:26:19.810: INFO/jdwp(759): received file descriptor 20 from ADB
01-08 16:26:20.469: INFO/ActivityManager(563): Starting activity: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} flags=0x10000000 comp={de.androidbuch.staumelder/de.androidbuch.staumelder.StaumeldungErfassen} }
01-08 16:26:20.479: DEBUG/AndroidRuntime(759): Shutting down VM
01-08 16:26:20.493: DEBUG/dalvikvm(759): DestroyJavaVM waiting for non-daemon threads to exit
01-08 16:26:20.499: DEBUG/dalvikvm(759): DestroyJavaVM shutting VM down
01-08 16:26:20.499: DEBUG/dalvikvm(759): HeapWorker thread shutting down
01-08 16:26:20.499: DEBUG/dalvikvm(759): HeapWorker thread has shut down
01-08 16:26:20.499: DEBUG/jdwp(759): JDWP shutting down net...
01-08 16:26:20.509: DEBUG/jdwp(759): +++ peer disconnected
01-08 16:26:20.509: INFO/dalvikvm(759): Debugger has detached; object registry had 1 entries
01-08 16:26:20.519: DEBUG/dalvikvm(759): VM cleaning up
01-08 16:26:20.529: WARN/dalvikvm(759): LinearAlloc 0x0 not freed: 0x410caa08 len=20
01-08 16:26:20.529: WARN/dalvikvm(759): LinearAlloc 0x0 not freed: 0x410caa20 len=340
01-08 16:26:20.539: WARN/dalvikvm(759): LinearAlloc 0x0 not freed: 0x410cab78 len=2244
01-08 16:26:20.539: DEBUG/dalvikvm(759): LinearAlloc 0x0 used 641844 of 4194304 (15%)

Der Screenshot enthält die Fehlermeldung und das eigentliche Orginal.
Mit dem Debugger Protokall kann ich noch nicht dienen, da Eclips jetzt mein Projekt nicht mehr anzeigt. Muss kurz mal nachlesen, was da passiert ist.
 

Anhänge

  • Screenshot.pdf
    183,8 KB · Aufrufe: 145
@tobbbi

Habe es mir aufgrund dieser deutlich schlechten Bewertungen nicht geholt. Allerdings werde ich es mir wegen deinem Posting nun doch mal ausleihen.
Jeder lernt und versteht anders. Zudem gibt es ja auch Schwerpunkte. Anfangs war mir Bluetooth sehr wichtig. Ebenfalls sollte das Buch für Anfänger geeignet sein. Objektorientiert, programmiere ich bereits seit Jahren. Android war für mich jedoch neu.

Das Buch von Arno Becker (dpunkt.verlag) ist anhand eines praktischen und aus der realen Welt gegriffenen Beispiels aufgebaut. Im Projekt Staumelder werden so ziemlich die wichtigsten Themen angesprochen und erläutert. Der Aufbau zu Lernzwecken, vorallem für Anfänger, gefällt mir besser als das von mir empfohlene Buch. Nur als Anfänger wird man schnell demoralisiert wenn der Beispielcode so viele Fehler aufweist. Mann was habe ich geflucht:sneaky:

Das Buch von Heike Mosemann und Matthias Kose (HANSER) hat mir gut gefallen, daher auch meine Empfehlung, weil das was geschrieben wurde auch gleich importiert und getestet werden konnte. Und zwar ohne Probleme und fluchen.

Es ist halt Geschmackssache und ebenfalls abhängig vom Android-Wissensstand. Meiner war da bei null. Mir waren funktionierende Beispiele sehr wichtig. Da hier ja das Thema hießt: „Buch fehlerhaft? Oder bin ich blind?“ dachte ich wäre es interessant ein Buch aufzuführen „Buch weniger fehlerhaft und leicht sehbehindert“ :)

Ich glaube es gibt kein fehlerfreies Buch nur fehlerfreiere.

Bin mal gespannt was du von dem Buch hälst. Würde mich freuen wenn du deine Meinung zum Buch hier posten könntest.

Gruß enrem
 
Hallo,

ich bin neu hier. Ich wollte etwas tiefer in Java einsteigen und habe mir vielleicht dummerweise Android ausgesucht. Na ja jedenfalls habe ich auch versucht mit dem Buch von Becker und Pant Version 1 anzufangen und stoße nun auf den gleichen Fehler.
Habt ihr inzwischen die Lösung gefunden?

Mein Log:
03-18 11:34:24.649: ERROR/AndroidRuntime(191): Uncaught handler: thread main exiting due to uncaught exception
03-18 11:34:24.739: ERROR/AndroidRuntime(191): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.androidbuch.staumelder/de.androidbuch.staumelder.StaumeldungErfassen}: java.lang.NullPointerException
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.os.Looper.loop(Looper.java:123)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.ActivityThread.main(ActivityThread.java:4203)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at java.lang.reflect.Method.invokeNative(Native Method)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at java.lang.reflect.Method.invoke(Method.java:521)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at dalvik.system.NativeStart.main(Native Method)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): Caused by: java.lang.NullPointerException
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:201)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.content.res.Resources.getTextArray(Resources.java:365)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.widget.ArrayAdapter.createFromResource(ArrayAdapter.java:391)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at de.androidbuch.staumelder.StaumeldungErfassen.onCreate(StaumeldungErfassen.java:18)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
03-18 11:34:24.739: ERROR/AndroidRuntime(191): ... 11 more


Wäre nett, wenn ihr mir helfen könntet.

Tschüß,
Immi.
 

Ähnliche Themen

A
Antworten
1
Aufrufe
637
swa00
swa00
L
Antworten
15
Aufrufe
909
jogimuc
J
G
Antworten
5
Aufrufe
871
jogimuc
J
Zurück
Oben Unten