Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将活动强制转换为com.google.android.gms.common.api.GoogleAppClient$ConnectionCallbacks_Java_Android_Google Api - Fatal编程技术网

Java 无法将活动强制转换为com.google.android.gms.common.api.GoogleAppClient$ConnectionCallbacks

Java 无法将活动强制转换为com.google.android.gms.common.api.GoogleAppClient$ConnectionCallbacks,java,android,google-api,Java,Android,Google Api,我正在从另一个类调用checkLocationOn方法 // Change Address Click Action tvProfileChangeAddress.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (Build.VERSION.SDK_INT >= 23) {

我正在从另一个类调用checkLocationOn方法

 // Change Address Click Action
    tvProfileChangeAddress.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (Build.VERSION.SDK_INT >= 23) {
                if ((checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
                        == PackageManager.PERMISSION_GRANTED)) {
                    GetLocation.checkLocationOn(Profile.this);
                }else{
                    AskPermissions.AskLocationPermission(Profile.this);
                }
              } else {
                GetLocation.checkLocationOn(Profile.this);
            }
            }
        });
我已经在CheckLocation方法中初始化了我的GoogleAppClient

 // Building Google API Client
protected static synchronized void buildGoogleApiClient(Context context){
    mGoogleApiClient = new GoogleApiClient.Builder(context)
            .addApi(LocationServices.API)
            .addConnectionCallbacks((GoogleApiClient.ConnectionCallbacks) context)
            .addOnConnectionFailedListener((GoogleApiClient.OnConnectionFailedListener) context)
            .build();
    mGoogleApiClient.connect();
    createLocationRequest();
    return;

}
在初始化GoogleAppClient时,我的应用程序强制停止给出错误消息

03-27 16:43:13.930 5118-5118/?E/AndroidRuntime:致命异常:主 进程:com.demo.FetchLocation,PID:5118 java.lang.ClassCastException:com.demo.FetchLocation.Profile不能强制转换为com.google.android.gms.common.api.GoogleAppClient$ConnectionCallbacks 位于com.demo.FetchLocation.GetLocation.buildGoogleAppClient(GetLocation.java:75) 在com.demo.FetchLocation.GetLocation.checkLocationOn(GetLocation.java:68)上 位于com.demo.FetchLocation.Profile$2.onClick(Profile.java:128) 在android.view.view.performClick上(view.java:5269) 在android.view.view$PerformClick.run(view.java:21556) 位于android.os.Handler.handleCallback(Handler.java:815) 位于android.os.Handler.dispatchMessage(Handler.java:104) 位于android.os.Looper.loop(Looper.java:207) 位于android.app.ActivityThread.main(ActivityThread.java:5769) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:789) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

是否有人对此有解决方案???

根据,正确的方法调用是:

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

让您的
Profile
活动同时实现
GoogleAppClient.ConnectionCallbacks
GoogleAppClient.OnConnectionFailedListener
接口

当你执行以下命令时

.addConnectionCallbacks((GoogleApiClient.ConnectionCallbacks) context)
            .addOnConnectionFailedListener((GoogleApiClient.OnConnectionFailedListener) context)
在传递的上下文中,您实际上没有实现任何这些接口,在您的情况下,这些接口属于概要活动

protected static synchronized void buildGoogleApiClient(Context context){
mGoogleApiClient = new GoogleApiClient.Builder(context)
        .addApi(LocationServices.API)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();
mGoogleApiClient.connect();
createLocationRequest();
return;

}

写下这篇文章,并实现您在活动中实现的所有接口方法。

post full stack traceIs
Profile
class A Activity?是的,Profile是
Profile
Activity的ActivityPost代码。谢谢!!这很有效。。。我忘了在profile活动中实现这些