2016-09-29 8 views
-1

MapActivity検索Googleマップの場所に苦しん

public class Agriculture extends AppCompatActivity implements  
     OnMapReadyCallback, 
     GoogleMap.OnInfoWindowClickListener, 
     GoogleMap.OnMarkerClickListener { 

    GoogleMap mMap; 
    Address address; 
    LatLng latLng; 
    SupportMapFragment sMapFragment; 
    /** 
    * ATTENTION: This was auto-generated to implement the App Indexing API. 
    * See https://g.co/AppIndexing/AndroidStudio for more information. 
    */ 
    private GoogleApiClient client; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_map); 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
     // ATTENTION: This was auto-generated to implement the App Indexing API. 
     // See https://g.co/AppIndexing/AndroidStudio for more information. 
     client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
    } 


public void onSearch(View view) 


{ 

     EditText tfLocation = (EditText) findViewById(R.id.tfLocation); 

     String location = tfLocation.getText().toString(); 

     List<Address> addressList = null; 

     if (location!=null && !location.equals("")) 
     { 
      Geocoder geocoder = new Geocoder(this); 
      try { 

       addressList = geocoder.getFromLocationName(location, 0); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      Address address = addressList.get(0); 
      LatLng latLng = new LatLng(address.getLatitude() , address.getLongitude()); 

logcat locationnullすることができないという事実を無視

Process: amahlo.gridview, PID: 13000 
java.lang.IllegalStateException: Could not execute method for android:onClick 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
at android.view.View.performClick(View.java:5210) 
at android.view.View$PerformClick.run(View.java:20976) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:6145) 
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:1399) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
Caused by: java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
at android.view.View.performClick(View.java:5210)  
at android.view.View$PerformClick.run(View.java:20976)  
at android.os.Handler.handleCallback(Handler.java:739)  
at android.os.Handler.dispatchMessage(Handler.java:95)  
at android.os.Looper.loop(Looper.java:145)  
at android.app.ActivityThread.main(ActivityThread.java:6145)  
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:1399)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference 
at amahlo.gridview.Agriculture.onSearch(Agriculture.java:45) 
at java.lang.reflect.Method.invoke(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:372)  
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)  
at android.view.View.performClick(View.java:5210)  
at android.view.View$PerformClick.run(View.java:20976)  
at android.os.Handler.handleCallback(Handler.java:739)  
at android.os.Handler.dispatchMessage(Handler.java:95)  
at android.os.Looper.loop(Looper.java:145)  
at android.app.ActivityThread.main(ActivityThread.java:6145)  
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:1399)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  
+1

エラーは、 'Agriculture.java'の行番号45にあります。 'addressList'がnullである可能性があります。 'getFromLocationName()'は、一致するものが見つからなかった場合、または利用可能なバックエンドサービスが存在しない場合にはnullまたは空のリストを返します。 –

+0

あなたの完全なレイアウトとアクティビティコードを提供plz –

+0

フルコードを提供するb'zあなたはあなたが行方不明なことがあるかもしれないので、onclickでエラーがあります。私たちはそれを指摘することができます。 – androidnoobdev

答えて

0

...

あなたは最初にnullにリストを設定します。

List<Address> addressList = null; 

文字列が空であるかどうかを確認して試してみてください。例外があった場合

if (!TextUtils.isEmpty(location)) 
{ 
    Geocoder geocoder = new Geocoder(this); 
    try { 
     addressList = geocoder.getFromLocationName(location, 0); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

はしかし、ここでは、 addressListしたがって、まだあなたのエラーnullです。

Address address = addressList.get(0); 

実際の例外を見ることなく、ハードは完全な答えを与えるために、しかしにNullPointerを防止するための迅速な解決をtryにその最後の行を移動する(必要に応じてアクセスしようとする前!addressList.isEmpty()ことを確認することですそのデータ)。

関連する問題