Autore Topic: problema con mapactivity  (Letto 1210 volte)

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
problema con mapactivity
« il: 04 Dicembre 2011, 01:12:19 CET »
0
buonasera ragazzi ho un problema che non capisco,io ho un menu che chiama una nuova activity però se io questa nuova activity la implemento con Activity la chiamata va a buon fine invece se la implemento con mapactivity la chiamata fallisce e mi dice
Codice: [Seleziona]
E/AndroidRuntime(  880): java.lang.NoClassDefFoundError: org.me.demo.pallanuoto.
Squadra_Act
E/AndroidRuntime(  880):        at org.me.demo.pallanuoto.MainActivity.onOptions
ItemSelected(MainActivity.java:321)
E/AndroidRuntime(  880):        at android.app.Activity.onMenuItemSelected(Activ
ity.java:2195)
E/AndroidRuntime(  880):        at com.android.internal.policy.impl.PhoneWindow.
onMenuItemSelected(PhoneWindow.java:730)
E/AndroidRuntime(  880):        at com.android.internal.view.menu.MenuItemImpl.i
nvoke(MenuItemImpl.java:143)
E/AndroidRuntime(  880):        at com.android.internal.view.menu.MenuBuilder.pe
rformItemAction(MenuBuilder.java:855)
E/AndroidRuntime(  880):        at com.android.internal.view.menu.IconMenuView.i
nvokeItem(IconMenuView.java:532)
E/AndroidRuntime(  880):        at com.android.internal.view.menu.IconMenuItemVi
ew.performClick(IconMenuItemView.java:122)
E/AndroidRuntime(  880):        at android.view.View$PerformClick.run(View.java:
8816)
E/AndroidRuntime(  880):        at android.os.Handler.handleCallback(Handler.jav
a:587)
E/AndroidRuntime(  880):        at android.os.Handler.dispatchMessage(Handler.ja
va:92)
E/AndroidRuntime(  880):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  880):        at android.app.ActivityThread.main(ActivityThrea
d.java:4627)
E/AndroidRuntime(  880):        at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime(  880):        at java.lang.reflect.Method.invoke(Method.java:5
21)
E/AndroidRuntime(  880):        at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(  880):        at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:626)
E/AndroidRuntime(  880):        at dalvik.system.NativeStart.main(Native Method)

W/ActivityManager(   58):   Force finishing activity org.me.demo.pallanuoto/.Mai
nActivity
W/ActivityManager(   58): Activity pause timeout for HistoryRecord{44ff7dc8 org.
me.demo.pallanuoto/.MainActivity}
W/ActivityManager(   58): Activity destroy timeout for HistoryRecord{44ff7dc8 or
g.me.demo.pallanuoto/.MainActivity}
I/EventLogService(  170): Aggregate from 1322955418927 (log), 1322955418927 (dat
a)
D/dalvikvm(  170): GC_EXPLICIT freed 461 objects / 120464 bytes in 133ms
vorrei mettere una mappa in un dialog e con un activity normale non riesco a vedere la mappa perche mi va in eccezzione dicendomi :
Codice: [Seleziona]
E/AndroidRuntime(  999): java.lang.RuntimeException: Unable to start activity Co
mponentInfo{org.me.demo.pallanuoto/org.me.demo.pallanuoto.Squadra_Act}: android.
view.InflateException: Binary XML file line #41: Error inflating class com.googl
e.android.maps.MapView
qualche idea?

grazie
« Ultima modifica: 04 Dicembre 2011, 01:33:18 CET da bart »

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #1 il: 04 Dicembre 2011, 20:03:03 CET »
0
buonsera ragazzi io ho fatto questo codice per provare le api google per le mappe però quando parte non mi viene visualizzata l'immagine del puntina e mi si ricarica sempre su tuesla ,sembra quasi che i punti che li indico non li prenda in considerazione...
Codice (Java): [Seleziona]
import android.app.AlertDialog;
import android.content.Context;
import java.util.List;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import java.util.ArrayList;

public class MapsDemo extends MapActivity
{
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 MapView mapView = (MapView) findViewById(R.id.mapview);
 mapView.setBuiltInZoomControls(true);
 mapView.setSatellite(true);
mapView.setClickable(true);
 List<Overlay> mapOverlays = mapView.getOverlays();
 Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
 HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
 GeoPoint point = new GeoPoint(30443769,-91158458);
 OverlayItem overlayitem = new OverlayItem(point, "Laissez les bon temps rouler!", "I'm in Louisiana!");

 GeoPoint point2 = new GeoPoint(17385812,78480667);
 OverlayItem overlayitem2 = new OverlayItem(point2, "Namashkaar!", "I'm in Hyderabad, India!");

 itemizedoverlay.addOverlay(overlayitem);
 itemizedoverlay.addOverlay(overlayitem2);

 mapOverlays.add(itemizedoverlay);
 }
 @Override
 protected boolean isRouteDisplayed()
 {
 return false;
 }
 public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
 private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
 private Context mContext;

 public HelloItemizedOverlay(Drawable defaultMarker, Context context)
 {
 super(boundCenterBottom(defaultMarker));
 mContext = context;
 }

 public void addOverlay(OverlayItem overlay)
 {
 mOverlays.add(overlay);
 populate();
 }
 @Override
 protected OverlayItem createItem(int i)
 {
 return mOverlays.get(i);
 }
 @Override
 public int size()
 {
 return mOverlays.size();
 }
 @Override
 protected boolean onTap(int index)
 {
 OverlayItem item = mOverlays.get(index);
 AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
 dialog.setTitle(item.getTitle());
 dialog.setMessage(item.getSnippet());
 dialog.show();
 return true;
 }
}
}
il mio main.xml
Codice (xml<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mainlayout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:weightSum="100">



<com.google.android.maps.MapView
android:id="@+id/mapview"
android:required="true"
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:apiKey="mio cod..."
                 />
</LinearLayout>): [Seleziona]
 il codice l'ho ricevuto da google,ed infine il manifest
Codice (XML): [Seleziona]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="api.demo.map"
     android:versionCode="1"
     android:versionName="1.0">
    <application android:label="@string/app_name" >
       
        <activity android:name="MapsDemo"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity><uses-library
                       android:name="com.google.android.maps" />
    </application>
    <uses-sdk
               android:minSdkVersion="14" />
        <uses-sdk
               android:minSdkVersion="14" />
        <uses-permission
               android:name="android.permission.INTERNET" />

</manifest>
nel simulatore e nel progetto ho usato le google api's,
grazie mille per vostra disponibilità

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:problema con mapactivity
« Risposta #2 il: 05 Dicembre 2011, 15:07:37 CET »
0
Ciao bart, anche io ho incontrato lo stesso problema non molto tempo fa, e avevo risolto facendo cosi:

Da qui:  public HelloItemizedOverlay(Drawable defaultMarker, Context context) ho tolto il context, lasciando solo super(boundCenterBottom(defaultMarker)).

Poi ho fatto ho aggiunto questo piccolo pezzetto :

Codice (Java): [Seleziona]
public AddMarker (Drawable defaultMarker, Context context){
        super(defaultMarker);
        Context mContext = context;
}

spero che funzioni anche per il tuo esempio, perche io la classe HelloItemizedOverlay l'avevo utilizzata con un evento onTouch, ovvero ogno volta che cliccavo sulla mappa mi appariva un marker  :-)

Spero che sia la soluzione che stavi cercando  ;-)

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #3 il: 05 Dicembre 2011, 15:19:21 CET »
0
grazie mille ora provo...però anche a te rimaneva fermo su una città all'avvio,fregandosi delle tue indicazioni?
« Ultima modifica: 05 Dicembre 2011, 15:28:22 CET da bart »

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:problema con mapactivity
« Risposta #4 il: 05 Dicembre 2011, 16:04:09 CET »
0
Si si, anche a me rimaneva su una citta all'avvio senza che fosse quella che gli ho indicato.
ho risolto utilizzando:

MapController mc;
 mc.animateTo(point);

passondo il punto scelto ad animateTo, all'apertura la mappa viene centrata sul punto scelto  ;-)

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #5 il: 05 Dicembre 2011, 16:07:02 CET »
0
ciao scusa ma addmarker dove l'hai usato visto che è un costruttore?non hai usato HelloItemizedOverlay?

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:problema con mapactivity
« Risposta #6 il: 05 Dicembre 2011, 16:10:52 CET »
0
scusa, il nome della classe l'avevo cambiato io perche mi era piu chiaro, pero la classe e sempre HelloItemizedOverlay delle api di google, ti posto il codice cosi e piu chiaro  :-)

Codice (Java): [Seleziona]
import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class AddMarker extends ItemizedOverlay {
        private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
       
        public AddMarker(Drawable defaultMarker) {
                  super(boundCenterBottom(defaultMarker));
        }
       
        public void addOverlay(OverlayItem overlay){
                mOverlays.add(overlay);
                populate();
        }

        @Override
        protected OverlayItem createItem(int i) {
                // TODO Auto-generated method stub
                return mOverlays.get(i);
        }

        @Override
        public int size() {
                // TODO Auto-generated method stub
                return mOverlays.size();
        }
       

public AddMarker (Drawable defaultMarker, Context context){
        super(defaultMarker);
        Context mContext = context;
}
}

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #7 il: 06 Dicembre 2011, 17:28:46 CET »
0
ciao ho fatto come mi hai consigliato pero me lo apre pero non vedo la puntina che ho aggiunto,ora vedo la puntina ho aggiunto
Codice (Java): [Seleziona]
int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
drawable.setBounds(-w / 2, -h, w / 2, 0);
« Ultima modifica: 06 Dicembre 2011, 20:53:36 CET da bart »

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #8 il: 06 Dicembre 2011, 23:06:54 CET »
0
buonasera qualcuno di voi sa come lanciare una mapactivity da una activity ?ho cercato su google senza risultati
grazie

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:problema con mapactivity
« Risposta #9 il: 07 Dicembre 2011, 09:14:19 CET »
0
intendi una cosa del tipo parte l'applicazione dove c'e un pulsante, clicchi su quello e parte la mappa?  :-)

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #10 il: 07 Dicembre 2011, 11:02:23 CET »
0
si esatto,ho messo la libreria al fondo prima di </application>ed ora va,però se provo a mettere la mapview in un dialog mi da errore,devo perforza aprire un altra activity?

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:problema con mapactivity
« Risposta #11 il: 07 Dicembre 2011, 11:20:43 CET »
0
che tipo di errore ti da? riesci a postare il logcat?  :-)

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:problema con mapactivity
« Risposta #12 il: 07 Dicembre 2011, 11:36:22 CET »
0
eccolo:
Codice: [Seleziona]
E/AndroidRuntime(  329): FATAL EXCEPTION: main
E/AndroidRuntime(  329): java.lang.RuntimeException: Unable to start activity Co
mponentInfo{org.me.demo.pallanuoto/org.me.demo.pallanuoto.Squadra_Act}: android.
view.InflateException: Binary XML file line #41: Error inflating class com.googl
e.android.maps.MapView
E/AndroidRuntime(  329):        at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:2663)
E/AndroidRuntime(  329):        at android.app.ActivityThread.handleLaunchActivi
ty(ActivityThread.java:2679)
E/AndroidRuntime(  329):        at android.app.ActivityThread.access$2300(Activi
tyThread.java:125)
E/AndroidRuntime(  329):        at android.app.ActivityThread$H.handleMessage(Ac
tivityThread.java:2033)
E/AndroidRuntime(  329):        at android.os.Handler.dispatchMessage(Handler.ja
va:99)
E/AndroidRuntime(  329):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  329):        at android.app.ActivityThread.main(ActivityThrea
d.java:4627)
E/AndroidRuntime(  329):        at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime(  329):        at java.lang.reflect.Method.invoke(Method.java:5
21)
E/AndroidRuntime(  329):        at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(  329):        at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:626)
E/AndroidRuntime(  329):        at dalvik.system.NativeStart.main(Native Method)

E/AndroidRuntime(  329): Caused by: android.view.InflateException: Binary XML fi
le line #41: Error inflating class com.google.android.maps.MapView
E/AndroidRuntime(  329):        at android.view.LayoutInflater.createView(Layout
Inflater.java:513)
E/AndroidRuntime(  329):        at android.view.LayoutInflater.createViewFromTag
(LayoutInflater.java:565)
E/AndroidRuntime(  329):        at android.view.LayoutInflater.rInflate(LayoutIn
flater.java:618)
E/AndroidRuntime(  329):        at android.view.LayoutInflater.inflate(LayoutInf
later.java:407)
E/AndroidRuntime(  329):        at android.view.LayoutInflater.inflate(LayoutInf
later.java:320)
E/AndroidRuntime(  329):        at android.view.LayoutInflater.inflate(LayoutInf
later.java:276)
E/AndroidRuntime(  329):        at com.android.internal.policy.impl.PhoneWindow.
setContentView(PhoneWindow.java:198)
E/AndroidRuntime(  329):        at android.app.Dialog.setContentView(Dialog.java
:421)
E/AndroidRuntime(  329):        at org.me.demo.pallanuoto.Squadra_Act.onCreate(S
quadra_Act.java:160)
E/AndroidRuntime(  329):        at android.app.Instrumentation.callActivityOnCre
ate(Instrumentation.java:1047)
E/AndroidRuntime(  329):        at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:2627)
E/AndroidRuntime(  329):        ... 11 more
E/AndroidRuntime(  329): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(  329):        at com.google.android.maps.MapView.<init>(MapVie
w.java:238)
E/AndroidRuntime(  329):        at java.lang.reflect.Constructor.constructNative
(Native Method)
E/AndroidRuntime(  329):        at java.lang.reflect.Constructor.newInstance(Con
structor.java:446)
E/AndroidRuntime(  329):        at android.view.LayoutInflater.createView(Layout
Inflater.java:500)
E/AndroidRuntime(  329):        ... 21 more
E/AndroidRuntime(  329): Caused by: java.lang.IllegalArgumentException: MapViews
 can only be created inside instances of MapActivity.
E/AndroidRuntime(  329):        at com.google.android.maps.MapView.<init>(MapVie
w.java:282)
E/AndroidRuntime(  329):        at com.google.android.maps.MapView.<init>(MapVie
w.java:255)
E/AndroidRuntime(  329):        ... 25 more
W/ActivityManager(   58):   Force finishing activity org.me.demo.pallanuoto/.Squ
adra_Act
W/ActivityManager(   58):   Force finishing activity org.me.demo.pallanuoto/.Mai
nActivity
W/ActivityManager(   58): Activity pause timeout for HistoryRecord{44fecce0 org.
me.demo.pallanuoto/.Squadra_Act}
se nel dialog tolgo la mappa funziona