java - Android Studio 不是抽象的,也不会覆盖抽象方法

标签 java android service callback

我正在尝试开发一个小应用程序以使用 Google Play 服务获取位置信息。问题是,我一直遇到这个错误,我不知道为什么。

代码如下:

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 服务

我在 Gradle 上有这个:

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

我做错了什么?

谢谢大家。

最佳答案

您得到的直接错误是由于您的类 Principal 被声明为实现 ConnectionCallbacks 接口(interface)而没有实现该接口(interface)中定义的所有方法。来自Javadoc for ConnectionCallbacks我们可以看到这个接口(interface)包括两个方法:

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

您需要为它们提供实现,之后您的第一个错误应该会消失。修复此问题后,您的代码中可能会出现其他问题。

关于java - Android Studio 不是抽象的,也不会覆盖抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38386429/

相关文章:

android - 保存音乐状态

android - 在 Android 上执行文件 I/O - 它属于哪个线程

java - 从 S3 存储桶获取文件大小

java - 基于迭代更新 for 循环中的 java 变量

java - Axis2 Web 服务和 Eclipse WSDL 创作 : Adding an axis fault to wsdl causes exception when running wsdl2java

android - Twitter4J android查询搜索不返回所有推文

height - Android中动态设置TextView的宽高

java - 创建在后台播放音频的服务

service - 如何在领事(Hashicorp-consul)中将保险库(Hashicorp-vault)注册为服务,我使用的是kubernetes?

javax.net.ssl.SSLException : java. security.InvalidAlgorithmParameterException: trustAnchors 参数必须是非空的