1

좋아, 검색하고 검색 했으므로이 예제 프로젝트가 작동하는 마지막 장애물이되었습니다.하지만 이제 구현을 시도 할 때 내 전화 (Galaxy S4)에서 계속 실행되지 않습니다. android-maps-extensions 2.0 (지도에 추가 할 마커에 하중이 있지만 동적으로 필요함)Android지도 확장이 잘못되었습니다.

필자는 라이브러리를 모두 설치하고 작동해야하지만 MapFragment 코드를 변경할 때마다 AppMapFragment 충돌하고 열리지 않습니다. 난 괜찮아 내 휴대 전화에서 응용 프로그램로드와 같이 모든 것을두면

로그 캣

01-20 12:24:53.382: E/AndroidRuntime(21636): FATAL EXCEPTION: main 
01-20 12:24:53.382: E/AndroidRuntime(21636): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.me.mypackage/com.me.mypackage.MainActivity}: java.lang.NullPointerException 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.ActivityThread.access$700(ActivityThread.java:159) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.os.Looper.loop(Looper.java:137) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.ActivityThread.main(ActivityThread.java:5419) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at java.lang.reflect.Method.invokeNative(Native Method) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at java.lang.reflect.Method.invoke(Method.java:525) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at dalvik.system.NativeStart.main(Native Method) 
01-20 12:24:53.382: E/AndroidRuntime(21636): Caused by: java.lang.NullPointerException 
01-20 12:24:53.382: E/AndroidRuntime(21636): at com.me.mypackage.MainActivity.setUpMapIfNeeded(MainActivity.java:102) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at com.me.mypackage.MainActivity.onCreate(MainActivity.java:76) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.Activity.performCreate(Activity.java:5372) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 
01-20 12:24:53.382: E/AndroidRuntime(21636): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257) 

매니페스트 XML

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.me.mypackage" 
android:id="@+id/theMap" 
android:name="com.androidmapsextensions.SupportMapFragment" 
android:versionCode="1" 
android:versionName="1.0" > 


<permission 
android:name="com.me.mypackage.permission.MAPS_RECEIVE" 
android:protectionLevel="signature" /> 
<uses-permission android:name="com.mhmedia.fuelfinder.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<uses-feature 
android:glEsVersion="0x00020000" 
android:required="true"/> 

<uses-sdk 
android:minSdkVersion="8" 
android:targetSdkVersion="19" /> 

<application 
android:allowBackup="true" 
android:icon="@drawable/logo" 
android:label="@string/app_name" 
android:theme="@style/AppTheme" > 
<meta-data 
android:name="com.google.android.maps.v2.API_KEY" 
android:value="myAPI_KEY" /> 
<activity 
android:name="com.me.mypackage.MainActivity" 
android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 

<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity> 
<meta-data android:name="com.google.android.gms.version" 
android:value="@integer/google_play_services_version"></meta-data> 
</application> 

</manifest> 

MainActivity 클래스 내가 잘못 뭐하는 거지

public class MainActivity extends FragmentActivity implements LocationListener, 
GooglePlayServicesClient.ConnectionCallbacks, 
GooglePlayServicesClient.OnConnectionFailedListener, LocationSource { 

private GoogleMap mMap; 
private OnLocationChangedListener mListener; 
private LocationManager locationmanager; 
GoogleMap googlemap; 
LatLng myposition; 
ArrayList<Entry> entries = new ArrayList<Entry>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);  
locationmanager = (LocationManager) getSystemService(LOCATION_SERVICE); 

if(locationmanager != null){ 
boolean gpsIsEnabled = locationmanager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
boolean networkIsEnabled = locationmanager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

if(gpsIsEnabled){ 
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000L, 10F, this); 
} 
else if(networkIsEnabled) 
{ 
locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000L, 10F, this); 
} 
else 
{ 
Toast.makeText(this, "GPS is not enabled", Toast.LENGTH_SHORT).show(); 
} 

setUpMapIfNeeded(); 
showmypoi(); 
} 

} 

@Override 
public void onPause() 
{ 
if(locationmanager != null){ 
locationmanager.removeUpdates(this); 
} 
super.onPause(); 
} 

@Override 
public void onResume(){ 
super.onResume(); 
setUpMapIfNeeded(); 
if(locationmanager != null){ 
mMap.setMyLocationEnabled(true); 
} 
} 

private void setUpMapIfNeeded() { 
if (mMap == null){ 
mMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.the_map)).getExtendedMap(); 

if (mMap != null){ 
setUpMap(); 
} 
mMap.setLocationSource(this); 
} 

} 

private void showmypoi() { 
InputStream is = null; 
is = this.getResources().openRawResource(R.raw.markers); 

ArrayList<Entry> entries = (ArrayList<Entry>) new ParserParsing().parse(is); 
for (int i = 0; i < entries.size(); i++){ 
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.the_map)).getExtendedMap(); 
mMap.setClustering(new ClusteringSettings().enabled(false).addMarkersDynamically(true)); 
/* mMap.addMarker(new MarkerOptions() 
.position(lng) 
.icon(BitmapDescriptorFactory.fromResource(getResources().getIdentifier(icon, "drawable", getPackageName()) 
} 
} 

private void setUpMap() { 
mMap.setMyLocationEnabled(true); 

} 

@Override 
public void activate(OnLocationChangedListener listener) { 
mListener = listener; 


} 

@Override 
public void deactivate() { 
mListener = null; 

} 

@Override 
public void onConnectionFailed(ConnectionResult result) {} 

@Override 
public void onConnected(Bundle connectionHint) {} 

@Override 
public void onDisconnected() {} 

public void onCameraChange(CameraPosition cameraPosition){ 

} 

@Override 
public void onLocationChanged(Location location) { 
if(mListener != null){ 
mListener.onLocationChanged(location); 

LatLngBounds bounds = this.mMap.getProjection().getVisibleRegion().latLngBounds; 

if(!bounds.contains(new LatLng(location.getAltitude(), location.getLongitude())));{ 
mMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()))); 

} 

} 

} 

@Override 
public void onProviderDisabled(String provider) { 
Toast.makeText(this, "Provider Disabled", Toast.LENGTH_SHORT).show(); 

} 

@Override 
public void onProviderEnabled(String provider) { 
Toast.makeText(this, "Provider Enabled", Toast.LENGTH_SHORT).show(); 

} 

@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
Toast.makeText(this, "Status Changed", Toast.LENGTH_SHORT).show(); 

} 


} 

? 나는 이것을 알아 내려고 노력하는 내 두뇌를 잃고있다. 나는 너무 많은 내가지도 확장

의 클러스터링 능력을 필요로하는지도에 추가 할 마커 당신에게 내가 알아 낸

+0

'mMap'이 null 일 수 있습니다. – Raghunandan

+0

어떤 점에서? MapFragment를 사용하면 앱이 잘 실행되기 때문에 SupportMapFragment를 사용하면 충돌이 발생합니다. –

답변

1

감사 있습니다. 내 레이아웃 파일에 com.androidmapsextensions.SupportMapFragment를 가져 오지 않았습니다. 따라서 com.google.android.gms.maps.SupportMapFragment를 가져 와서지도가로드되지 않았습니다.