2016-07-06 2 views
-1

안녕 내가 여기에 구글 튜토리얼 후 내 안드로이드 응용 프로그램 (안드로이드 스튜디오)에서 구글 맵을 구현하기 위해 노력하고있어와 구글지도를 구현 서비스 및 API 키는이 관련된 오류있을 것 같지)안드로이드는 조각

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background1000px" 
    android:paddingBottom="0dp" 
    android:paddingLeft="0dp" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.zuercher.zuerchertechnik.Display_product"> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/box400x50" 
    android:id="@+id/title" 
    android:layout_marginLeft="@dimen/activity_horizontal_margin" 
    android:adjustViewBounds="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentEnd="false" 
    android:layout_alignParentRight="false" 
    android:text="@string/kontakt" 
    android:padding="10dp" 
    android:textColor="@color/black" 
    android:textSize="24sp" 
    android:paddingTop="5dp" 

    /> 

<fragment 
    class="com.google.android.gms.maps.MapFragment" 
    android:id="@+id/map2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
</RelativeLayout> 

그리고 여기에는 활동에 대한 내 자바 코드입니다.

package com.zuercher.zuerchertechnik; 

import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.GoogleMapOptions; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.CameraPosition; 
import com.google.android.gms.maps.model.LatLng; 

public class Display_contact extends FragmentActivity implements OnMapReadyCallback { 

@Override 

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_contact); 
    MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map2); 
    mapFragment.getMapAsync(this); 
} 

@Override 
public void onMapReady(GoogleMap googleMap) { 



} 
} 

나는 항상 almose 유명한 널 포인터 예외를 얻고있다. 그리고 정말로 많은 다른 조합을 시험해 보았다. 그러나 나는 필사적으로 여기에서 얻고있다. (놀랍게도 구글 튜토리얼을 따르는 것은 전혀 도움이되지 않았다.) 내가 무엇인가? 여기 없습니까?

덕분에 새로운이 코드를 사용해야 조각 내부에 구글지도를 사용하려면 스택 트레이스 코드

FATAL EXCEPTION: main 
                       Process: com.zuercher.zuerchertechnik, PID: 19745 
                      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zuercher.zuerchertechnik/com.zuercher.zuerchertechnik.Display_contact}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.MapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2656) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721) 
                       at android.app.ActivityThread.access$900(ActivityThread.java:168) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:135) 
                       at android.app.ActivityThread.main(ActivityThread.java:5753) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:372) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
                      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.MapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference 
                       at com.zuercher.zuerchertechnik.Display_contact.onCreate(Display_contact.java:41) 
                       at android.app.Activity.performCreate(Activity.java:6112) 
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1117) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721)  
                       at android.app.ActivityThread.access$900(ActivityThread.java:168)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:135)  
                       at android.app.ActivityThread.main(ActivityThread.java:5753)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at java.lang.reflect.Method.invoke(Method.java:372)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)  
+0

'NullPointerException' 스택 추적도 붙여 주실 수 있습니까? – StuStirling

+0

덧붙여서, 페이지 조직에서 나쁜 점을 유감스럽게 생각하지만, 오른쪽으로는 '점프'합니다. – nightslit

답변

0

을 추가

:

MapFragment= ((MapFragment) getChildFragmentManager().findFragmentById(R.id.map2)); 

    MapFragment.getMapAsync(new OnMapReadyCallback() { 
     @Override 
     public void onMapReady(GoogleMap googleMap) { 

     } 
    }); 
+0

getChildFragmentManager를 내 Android Studio에서 찾을 수 없습니다. – nightslit

+0

클래스 단편을 확장하고 onCreateView를 구현하려고하면 FragmentActivity를 확장하는 이유는 무엇입니까? – Vasilisfoo

+0

그래서 더 이상 확장되지 않습니다. FragementActivity는 OnMapReadyCallback을 구현하지만 단편을 확장 할 수 있습니까? – nightslit

0

를 추가해보십시오

static GoogleMap mMap; 

을 있다 당신의에서 onCreate 앞 다음에 onMapReady

mMap = googleMap; 
+0

어떻게 구현해야합니까? 이 정적 GoogleMap mMap을 추가하면; null 포인터 예외는 변경되지 않습니다. – nightslit

0

당신이 getSupportFragmentManager()을 사용하십시오 FragmentActivity을 사용하려는 경우 오히려 getFragmentManager

0

당신은 그렇지 않으면 getFragmentManager 취할 수 있도록하기 위해 AppCompatActivity를 확장해야합니다 getSupportFragmentManager를 사용해보십시오. FragmentActivity의 문서는 말한다 : 그 기능에 액세스 할 새로운 플랫폼에 내장 된 조각 및 로더 지원, 당신은 사용해야에서 getSupportFragmentManager()와 getSupportLoaderManager() 메소드 각각 반대

이 클래스를 사용하는 경우.