Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 无法从静态上下文引用非静态方法isGooglePlayServicesAvailable和getErrorDialog_Java_Android_Android Studio_Google Cloud Messaging_Google Play Services - Fatal编程技术网

Java 无法从静态上下文引用非静态方法isGooglePlayServicesAvailable和getErrorDialog

Java 无法从静态上下文引用非静态方法isGooglePlayServicesAvailable和getErrorDialog,java,android,android-studio,google-cloud-messaging,google-play-services,Java,Android,Android Studio,Google Cloud Messaging,Google Play Services,我正在编写这段代码,它显示了错误非静态方法GooglePayAvailability。不能从静态上下文引用isGooglePlayServicesAvailable(上下文上下文上下文)和GooglePayAvailability.getErrorDialog(活动活动、int errorCode、int requestCode) package com.xamarin.gcmexample; import android.app.Dialog; import android.os.Bundle

我正在编写这段代码,它显示了错误非静态方法GooglePayAvailability。不能从静态上下文引用isGooglePlayServicesAvailable(上下文上下文上下文)和GooglePayAvailability.getErrorDialog(活动活动、int errorCode、int requestCode)

package com.xamarin.gcmexample;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.GoogleApiAvailability;
import android.util.Log;
import android.widget.TextView;

public class Main extends AppCompatActivity {
    TextView msgText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        msgText = (TextView) findViewById(R.id.msgText);

    }
    protected void IsPlayServicesAvailable ()
    {
        int resultCode = GoogleApiAvailability.isGooglePlayServicesAvailable(this);
        if (resultCode == ConnectionResult.SUCCESS){
            msgText.setText("isGooglePlayServicesAvailable SUCCESS");

        }else{
            GoogleApiAvailability.getErrorDialog(this, resultCode, 1).show();
        }
    }

}

通过谷歌搜索,这表明:静态的
已被弃用,请使用非静态的
isGooglePlayServicesAvailable(Contex-ctx)
。(还有
公共静态GoogleAppAvailability getInstance()

Nurlan已经指出了正确的答案

替换你的方法

protected void IsPlayServicesAvailable() {
    int resultCode = GoogleApiAvailability.isGooglePlayServicesAvailable(this);

    if (resultCode == ConnectionResult.SUCCESS){
        msgText.setText("isGooglePlayServicesAvailable SUCCESS");
    } else {
        GoogleApiAvailability.getErrorDialog(this, resultCode, 1).show();
    }
}


如何在上述代码中使用“publicstaticGoogleAppAvailability getInstance()”?请解释一下。@manasmatiy,获取GooglePayAvailability的实例,并从实例中使用非静态的isGooglePlayServicesAvailable(Contex ctx)
GooglePayAvailability实例=GooglePayAvailability.getInstance();int res=instance.isGooglePlayServicesAvailable(Contex ctx)可能可以,但不能在API 19 emulator上使用“com.google.android.gms:play services maps:17.0.0”。@CoolMind为什么不能?我不是安卓方面的专家,但是上面提到的方法仍然出现在API中:对不起,我的意思是这个方法返回了成功。
protected void IsPlayServicesAvailable() {
    int resultCode = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this);

    if (resultCode == ConnectionResult.SUCCESS){
        msgText.setText("isGooglePlayServicesAvailable SUCCESS");
    } else {
        GoogleApiAvailability.getInstance().getErrorDialog(this, resultCode, 1).show();
    }
}