CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

[Eclipse+adt] Problema insolito Google Maps

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Aug 2010
    Messaggi
    23

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    [Eclipse+adt] Problema insolito Google Maps

    Ciao a tutti,
    vi prego aiutatemi, ho un problema in un'applicazione che gestisce un menù, una sotto attività e GOOGLE MAPS:

    Non appena lancio l'applicazione ho questo errore dalla console e non parte nulla!! Notate l'errore "Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY"
    codice:
    [2010-09-01 20:41:56 - MenuDemo] HOME is up on device 'emulator-5554'
    [2010-09-01 20:41:56 - MenuDemo] Uploading MenuDemo.apk onto device 'emulator-5554'
    [2010-09-01 20:41:57 - MenuDemo] Installing MenuDemo.apk...
    [2010-09-01 20:42:27 - MenuDemo] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
    [2010-09-01 20:42:27 - MenuDemo] Please check logcat output for more details.
    [2010-09-01 20:42:27 - MenuDemo] Launch canceled!
    Andando ad esplorare il LogCat scopro un errore in rosso:
    codice:
    09-01 18:42:25.075: ERROR/PackageManager(58): Package mieapplicazioni.menudemo requires unavailable shared library com.google.android.maps; failing!
    C'entra qualcosa con delle shared library. Pare che non trovi le librerie "com.google.android.maps;" che invece io ho inserito nel mio manifest (vedere più sotto il codice). Vi posto i file che credo possano essere d'aiuto per scoprire l'errore:

    codice:
    package mieapplicazioni.menudemo;
    
    import com.google.android.maps.MapActivity;
    //import com.google.android.maps.MapView;
    
    //import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.Toast;
    
    public class MenuDemo extends MapActivity {
    	
    	/* E' buon uso avere della variabili per specificare l'id degli elemti del menù*/
    	private static final int MENUITEM_COMANDO_1 = 1;
    	private static final int MENUITEM_COMANDO_2 = 2;
    	private static final int MENUITEM_COMANDO_3 = 3;
    	
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);  
            
            
        }
        
        /* Con questo metodo creo il menù, l'argomento Menu agginunge degli elementi
         * e ogni elemento MenuItem setta la sua icona*/
        @Override
        	public boolean onCreateOptionsMenu(Menu menu) {
    		MenuItem comando1 = menu.add(Menu.NONE, MENUITEM_COMANDO_1, 1, "Set Range");
    		comando1.setIcon(R.drawable.icon);
    		MenuItem comando2 = menu.add(Menu.NONE, MENUITEM_COMANDO_2, 2, "Comando 2");
    		comando2.setIcon(R.drawable.icon);
    		MenuItem comando3 = menu.add(Menu.NONE, MENUITEM_COMANDO_3, 3, "Comando 3");
    		comando3.setIcon(R.drawable.icon);
    		return true;
        	}
        
        /* Questo metodo gestisce gli eventi di ogni singolo tasto del menù recuperando
         * il suo id e tramite uno switch descrivendo per ogni caso un'azione*/
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
        	int id = item.getItemId();
        	switch (id) {
        	case MENUITEM_COMANDO_1:
        	//Toast.makeText(this, "Comando 1", Toast.LENGTH_SHORT).show();
        	startSubActivity();
        	return true;
        	case MENUITEM_COMANDO_2:
        	Toast.makeText(this, "Comando 2", Toast.LENGTH_SHORT).show();
        	return true;
        	case MENUITEM_COMANDO_3:
        	Toast.makeText(this, "Comando 3", Toast.LENGTH_SHORT).show();
        	return true;
        	}
        	return false;
        }
        
        /* Con l'oggetto Intent dico quale attività dovrà essere lanciata, con
         * startActivity quell'attività si avvierà occupando effettivamente lo schermo*/
        private void startSubActivity() {
        	Intent intent = new Intent(this, SubActivity.class);
        	startActivity(intent);
        	}
        
        @Override 
        protected boolean isRouteDisplayed() {    
        	return false;
        	}
    }
    --main.xml--

    codice:
    <?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"
        />
        
        <com.google.android.maps.MapView   
        android:id="@+id/mapview"    
        android:layout_width="fill_parent"    
        android:layout_height="fill_parent"    
        android:clickable="true"    
        android:apiKey="mia_api_key" 
        />
        
    </LinearLayout>
    MenuDemoManifest.xml

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="mieapplicazioni.menudemo"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
        
        <uses-library android:name="com.google.android.maps" />
        
            <activity android:name=".MenuDemo"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
    		<activity android:name=".SubActivity" android:label="@string/sub_activity" />
        </application>
        
        <uses-permission android:name="android.permission.INTERNET" />
    	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    	
    
    </manifest>
    Cosa posso fare?? Prima di usare Google Maps tutto funzionava bene, e anche cambiando applicazione ho lo stesso errore però solo quelle in cui faccio uso di Google Maps.Grazie !!
    Ultima modifica di helldron; 01-09-10 alle 20:58

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Aug 2010
    Messaggi
    23

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho risolto da solo,
    il motivo era che avevo tutto importato bene, compreso le librerie del progetto, tuttavia andavo ad avviare l'applicazione con un emulatore munito di API 2.2 ma senza le API di Google.

    Tuttavia ora con questo main.xml non riesco a vedere la mappa ma solo una griglia che posso muovere. Questo accade a tutte le applicazioni che usano Maps, come nel caso dell'errore.
    Credo in ogni caso di aver tralasciato qualcosa:

    codice:
    <?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"
        />
        
        <com.google.android.maps.MapView   
        android:id="@+id/mapview"    
        android:layout_width="fill_parent"    
        android:layout_height="fill_parent"
        android:enabled="true"   
        android:clickable="true"    
        android:apiKey="0tQMi_I6psjlJnQkxkr69ihk6I_UQTdmWGY59_A" 
        />
        
    </LinearLayout>
    Il problema è cosa??
    Ultima modifica di helldron; 01-09-10 alle 21:18

  4. #3
    Baby Droid


    Registrato dal
    Aug 2010
    Messaggi
    23

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    RISOLTO automaticamente al riavvio di Eclipse e dell'emulatore!

  5. #4
    Baby Droid


    Registrato dal
    Jun 2010
    Messaggi
    22

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da helldron Visualizza il messaggio
    RISOLTO automaticamente al riavvio di Eclipse e dell'emulatore!
    Io ho lo stesso problema solo che riavviando non mi ha fatto vedere le mappe cioè soltanto la griglia grigia con un cerchio nero.

    Il layout main è praticamente equivalente a quello di "helldron"

    grazie per ogni risposta a riguardo

    Code:

    package esempio.provamappegoogle;

    import android.app.Activity;
    import android.content.Context;


    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.location.LocationProvider;
    import android.os.Bundle;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.TextView;
    import android.widget.Toast;


    //per non avere problemi di import da Properties del progetto -> Android selezionare come Build Target "Google APIs"
    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;



    public class homeProvaMappeGoogle extends MapActivity {

    private LocationManager lm;
    private LocationListener locationListener;
    private MapView mapView;
    private MapController mc;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    try{
    //setup componenti GOOGLE MAPS
    lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationListener = new MyLocationListener();

    lm.requestLocationUpdates(LocationManager.NETWORK_ PROVIDER/*GPS_PROVIDER*/, 2000, 10, locationListener);

    mapView = new MapView(this, "ABQIAAAAeawOle03B_1h6kVXeaHhZhT2yXp_ZAY8_ufC3CFXh HIE1NvwkxQSixCkRNm5ugu9HxoFdjB0XHqSmw");
    mc = mapView.getController();
    }catch(Exception e){
    TextView text = (TextView) findViewById(R.id.testo);
    text.setText(e.toString());
    }
    }

    @Override
    protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
    }

    //innerclass LocationListener
    private class MyLocationListener implements LocationListener{

    public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    try{
    if(location != null){
    Toast.makeText(getBaseContext(), "Location changed: Lat"+location.getLatitude()+"LngL "+location.getLongitude(), Toast.LENGTH_SHORT).show();

    GeoPoint p = new GeoPoint((int)(location.getLatitude()*1E6), (int) (location.getLongitude()*1E6));
    mc.animateTo(p);
    mc.setZoom(16);
    mapView.invalidate();
    }
    }catch(Exception e){
    TextView testo = (TextView) findViewById(R.id.testo);
    testo.setText(e.toString());
    }
    }

    public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

    }

    public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

    }

    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy