좋아, 검색하고 검색 했으므로이 예제 프로젝트가 작동하는 마지막 장애물이되었습니다.하지만 이제 구현을 시도 할 때 내 전화 (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();
}
}
? 나는 이것을 알아 내려고 노력하는 내 두뇌를 잃고있다. 나는 너무 많은 내가지도 확장
의 클러스터링 능력을 필요로하는지도에 추가 할 마커 당신에게 내가 알아 낸
'mMap'이 null 일 수 있습니다. – Raghunandan
어떤 점에서? MapFragment를 사용하면 앱이 잘 실행되기 때문에 SupportMapFragment를 사용하면 충돌이 발생합니다. –