Google maps Problem

  • Antworten:4
Christian
  • Forum-Beiträge: 10

25.03.2011, 14:29:22 via Website

Ich habe eine Applikation programmiert die nun auch in einem neuen VIew eine Google Maps anzeigen soll. Als Standalone funktioniert die Google maps Applikation schon. Aber wenn ich sie in die bestehende Applikation integriere und per Button aufrufen will bricht er sofort ab.


Das ist der Code zum öffnen, ist hier schon ein fehler??

1Button mapbutton = (Button) findViewById(R.id.button_map);
2 mapbutton.setOnClickListener(new View.OnClickListener() {
3 public void onClick(View view) {
4
5 try{
6 Intent intentmap = new Intent(view.getContext(), mapclass.class);
7 startActivityForResult(intentmap, 0);
8 }
9 catch (Exception e)
10 {
11 Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
12 }
13 }
14
15 });


und das ist der code des MapView

1import com.google.android.maps.MapActivity;
2import com.google.android.maps.MapView;
3import android.os.Bundle;
4import com.google.android.maps.MapView.LayoutParams;
5import android.view.View;
6import android.widget.LinearLayout;
7
8public class mapclass extends MapActivity
9{
10 MapView mapView;
11
12 /** Called when the activity is first created. */
13 @Override
14 public void onCreate(Bundle savedInstanceState)
15 {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.maplayout);
18
19
20 mapView = (MapView) findViewById(R.id.mapView);
21 LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);
22 View zoomView = mapView.getZoomControls();
23 mapView.setSatellite(true);
24 zoomLayout.addView(zoomView,
25 new LinearLayout.LayoutParams(
26 LayoutParams.WRAP_CONTENT,
27 LayoutParams.WRAP_CONTENT));
28 mapView.displayZoomControls(true);
29
30 }
31
32 @Override
33 protected boolean isRouteDisplayed() {
34 return false;
35 }
36}

bis jetzt ist es mir noch nicht gelungen den fehler abzufangen.

lg

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

25.03.2011, 15:49:39 via Website

Hmm, probier mal statt:
1Intent intentmap = new Intent(view.getContext(), mapclass.class);
2startActivityForResult(intentmap, 0);

das:
1Intent intentmap = new Intent(this, mapclass.class);
2startActivityForResult(intentmap, 1);

Ich bin mir nicht sicher auf was sich view bezieht, das fehlt in Deinem Code. Grundsätzlich müsste auch jeder Context der Anwendung funktionieren aber probiers halt mal. Es gibt irgendwo bei Google einen Blog in dem die Unterschiede zwischen den zwei verschiedenen Context-Arten erklärt werden. Ich kann die Stelle nicht mehr finden aber es wurde empfohlen grundsätzlich den getApplicationContext() zu nehmen.

Gruß
Harald

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

25.03.2011, 20:27:59 via Website

Immer gern genommen: hast du die neu integrierte Klasse in deinem manifest ergänzt?

"bricht sofort ab" bedeutet im Kalrtext?
Was sagt das Logfile dazu?

Antworten
Christian
  • Forum-Beiträge: 10

26.03.2011, 20:50:58 via Website

hi,
danke für die tips

1Intent intentmap = new Intent(this, mapclass.class);
22startActivityForResult(intentmap, 1);

hat leider nicht funktioniert

im manifest habe ich die klasse eingetragen, daran lag es nicht.

der error log des emulators schreibt unter anderem folgendes:
03-26 19:44:11.647: WARN/dalvikvm(418): threadid=3: thread exiting with uncaught exception (group=0x4001b188)

03-26 19:44:11.647: ERROR/AndroidRuntime(418): Uncaught handler: thread main exiting due to uncaught exception

03-26 19:44:11.667: ERROR/AndroidRuntime(418): java.lang.NoClassDefFoundError: at.flock.mapclass


mfg, christian

Antworten
Christian
  • Forum-Beiträge: 10

26.03.2011, 21:44:45 via Website

hi,
ich hab den fehler gefunden!!

ich hatte die manifestdatei falsch geschrieben

1<uses-library android:name="com.google.android.maps" />


stand nicht im aplikations-tag sondern darunter

saublöder fehler :*), der mir leider nicht aufgefallen ist, danke auf jeden fall.

mfg, chrsitian

Antworten