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 !!