[英]Unfortunely, Google Maps not loading after I updates Google Maps v1 to Google Maps v2 for my Android App
注意:1.當我將Maps V2用作獨立應用程序時,它可以正常工作。 但是,當我使用Maps V2(這是我的項目的子活動)時,出現以下提到的錯誤日志。 2.我的應用程序可以在Map v1上正常工作,但是我想將我的應用程序從Map V1升級到V2
添加了下面提到的代碼來調用地圖活動:嘗試{Class.forName(“ com.google.android.gms.maps.SupportMapFragment ”); Intent n = new Intent(Information.this,Gmaps.class); n.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(n); }
按照以下步驟將Google Maps v1升級到v2
http://javapapers.com/android/android-show-current-location-on-map-using-google-maps-api/ http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html
我的地圖活動課程
public class Information extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
Crittercism.init(getApplicationContext(), "CRITTERCISM_APP_ID");
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
playInformation();
}//oncreate
private void playInformation(){
try{
Class.forName("com.google.android.gms.maps.SupportMapFragment");
Intent n=new Intent(Information.this,Gmaps.class);
n.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(n);
}catch(Exception e){
e.printStackTrace();
setContentView(R.layout.error);
TextView tv = (TextView)findViewById(R.id.txtError);
tv.setText("Maps Does Not Supported By This Device");
tv.setTextSize(26);
}
}
}
public class Gmaps extends FragmentActivity {
// Google Map
private GoogleMap googleMap;
private Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
try {
// Loading map
initilizeMap();
// Changing map type
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
// Showing / hiding your current location
googleMap.setMyLocationEnabled(true);
// Enable / Disable zooming controls
googleMap.getUiSettings().setZoomControlsEnabled(false);
// Enable / Disable my location button
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
// Enable / Disable Compass icon
googleMap.getUiSettings().setCompassEnabled(true);
// Enable / Disable Rotate gesture
googleMap.getUiSettings().setRotateGesturesEnabled(true);
// Enable / Disable zooming functionality
googleMap.getUiSettings().setZoomGesturesEnabled(true);
double lat=12.9667; double lon=77.5667;
// Adding a marker
addMarker(googleMap, lat, lon);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
/**
* function to load map If map is not created it will create it for you
* */
private void initilizeMap() {
if (googleMap == null) {
//googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
googleMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
}
}
}
public void addMarker(GoogleMap googleMap, double lat, double lon)
{
if (marker != null) {
marker.remove();
}
// Adding a marker
MarkerOptions myMarker = new MarkerOptions().position(
new LatLng(lat, lon))
.title("Hello Bengaluru ");
// changing marker color
myMarker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED));
marker = googleMap.addMarker(myMarker);
// Move the camera to last position with a zoom level
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(lat, lon)).zoom(16).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
}
}
我將地圖用作我的應用程序的子活動,並在實現了上面的代碼並達到了給定的錯誤日志之后
********
11-10 20:03:42.659: W/dalvikvm(9654): Unable to resolve superclass of Lcom/google/android/gms/maps/SupportMapFragment; (168)
11-10 20:03:42.659: W/dalvikvm(9654): Link of class 'Lcom/google/android/gms/maps/SupportMapFragment;' failed
11-10 20:03:42.659: W/System.err(9654): java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.classForName(Native Method)
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.forName(Class.java:217)
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.forName(Class.java:172)
11-10 20:03:42.669: W/System.err(9654): at com.example.myApp.Information.playInformation(Information.java:594)
11-10 20:03:42.669: W/System.err(9654): at com.example.myApp.Information.onCreate(Information.java:294)
11-10 20:03:42.669: W/System.err(9654): at android.app.Activity.performCreate(Activity.java:4470)
11-10 20:03:42.669: W/System.err(9654): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.access$600(ActivityThread.java:128)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
11-10 20:03:42.669: W/System.err(9654): at android.os.Handler.dispatchMessage(Handler.java:99)
11-10 20:03:42.669: W/System.err(9654): at android.os.Looper.loop(Looper.java:137)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.main(ActivityThread.java:4517)
11-10 20:03:42.669: W/System.err(9654): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 20:03:42.669: W/System.err(9654): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 20:03:42.669: W/System.err(9654): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
11-10 20:03:42.669: W/System.err(9654): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
11-10 20:03:42.669: W/System.err(9654): at dalvik.system.NativeStart.main(Native Method)
11-10 20:03:42.669: W/System.err(9654): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/maps/SupportMapFragment
11-10 20:03:42.679: W/System.err(9654): ... 19 more
11-10 20:03:42.679: W/System.err(9654): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
11-10 20:03:42.679: W/System.err(9654): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-10 20:03:42.679: W/System.err(9654): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-10 20:03:42.679: W/System.err(9654): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-10 20:03:42.679: W/System.err(9654): ... 19 more******
------------------------------------------------------------------------**
在<application>
清單文件中添加以下權限
<uses-library android:name="com.google.android.maps"/>
如果您在添加地圖組件時仍然遇到問題,請直接參考該教程以直接使用Map API v2,因為它非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.