2016-07-15 10 views
1

Google Playサービスで場所を取得するための小さなアプリを作成しようとしています。問題は、私はいつもこのエラーが発生していると私は理由を知らないです。Androidスタジオは抽象メソッドではなく、抽象メソッドをオーバーライドしません。

import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.common.api.GoogleApiClient; 
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks; 
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener; 
//import com.google.android.gms.location.LocationListener; 
import com.google.android.gms.location.LocationRequest; 
import com.google.android.gms.location.LocationServices; 

public class Principal extends AppCompatActivity implements ConnectionCallbacks, OnConnectionFailedListener { 

    private GoogleApiClient mGoogleApiClient; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_principal); 

    gps = new MockLocationProvider(LocationManager.GPS_PROVIDER, Principal.this); 
    net = new MockLocationProvider(LocationManager.NETWORK_PROVIDER, Principal.this); 

    mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(LocationServices.API) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 

    mGoogleApiClient.connect(); 

    } 
} 

とエラーは、次のとおりです:ここで

はコードである

Error:(74, 8) error: Principal is not abstract and does not override abstract method onConnectionSuspended(int) in ConnectionCallbacks 

私はConnectionCallbacksOnConnectionFailedListenerを実装していない場合、私はこのエラーを持っている:

Error:(116, 41) error: incompatible types: Principal cannot be converted to ConnectionCallbacks 

このオプションを削除した場合:

.addConnectionCallbacks(this) 
.addOnConnectionFailedListener(this) 

ConnectionCallbacksOnConnectionFailedListener私はエラーはありませんがGooglePlay Serviceは接続されていません。

私はGradleの上でこれを持っている:

compile 'com.google.android.gms:play-services-location:7.3.0' 

私が間違ってやっていますか?

ありがとうございました。

答えて

1

あなたのクラスには、PrincipalConnectionCallbacksインターフェイスの実装として宣言されているため、そのインターフェイスに定義されているすべてのメソッドを実装することはありません。 Javadoc for ConnectionCallbacksから、我々は、このインタフェースは、2つのメソッドが含まれていることを見ることができます:

abstract void onConnected(Bundle connectionHint)
abstract void onConnectionSuspended(int cause)

あなたはあなたの最初のエラーが離れて行くべきポイントされた後、それらの両方のための実装を提供する必要があります。これを修正した後に表示されるコードには、他の問題がある可能性があります。

関連する問題

 関連する問題