Reputation: 1538
I'm having an Android GPS project for my CS class. Right now I'm working through tutorials (using Eclipse with ADT plugin) to have an idea of how to use the Android library, but along the way, I received the Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
I checked on LogCat and it seems the error starts on this line:
03-29 23:05:14.721: E/PackageManager(72): Package virginia.edu.cs2110 requires unavailable shared library android.location; failing!
I have looked up this problem and did all the things that I was able to find. I declared the uses-library field in the manifest file:
<uses-library android:name="android.location" />
<uses-library android:name="com.google.android.maps" />
If anyone is wondering, this is my whole manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="virginia.edu.cs2110"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TrivialGPS"
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="android.location" />
<uses-library android:name="com.google.android.maps" />
</application>
</manifest>
I also created an Android emulator with Target Name "Google API (Google Inc.)": http://i42.tinypic.com/2dj3vd5.jpg
Also, here's the code that I wanted to run:
package virginia.edu.cs2110;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
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 TrivialGPS extends MapActivity {
private MapController mapController;
private MapView mapView;
private LocationManager locationManager;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// create a map view
mapView = new MapView(this, "C7:63:2F:C8:93:8B:E1:83:D6:4F:D3:5B:62:C1:75:90");
mapController = mapView.getController();
mapController.setZoom(22);
setContentView(mapView);
// get a hangle on the location manager
locationManager =
(LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
new LocationUpdateHandler());
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
public class LocationUpdateHandler implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
int lat = (int) (loc.getLatitude()*1E6);
int lng = (int) (loc.getLongitude()*1E6);
GeoPoint point = new GeoPoint(lat, lng);
mapController.setCenter(point);
setContentView(mapView);
}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
}
Upvotes: 0
Views: 1037
Reputation: 1006914
Delete <uses-library android:name="android.location" />
, as there is no such library.
Upvotes: 2