Google Awareness API、API 密钥无效、崩溃 [英] Google Awareness API, Invalid API key, Crash

查看:22
本文介绍了Google Awareness API、API 密钥无效、崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我第一次尝试创建一个 android 应用程序.在尝试使用 Google 提供的 Awareness API 时,我在 logcat 中收到一个 SecurityException,并且出现错误:

This is my first attempt at creating an android application. In trying to use the Awareness API provided by Google I receive a SecurityException in logcat, and the error:

包的 API 密钥无效 = com.example.android.project.收到的状态代码 = 12".

"Invalid API Key for package = com.example.android.project. Status code received = 12".

意思是,mGoogleApiClient.connect() 每次都会导致应用程序崩溃.无论如何要知道状态代码的含义吗?

Meaning, mGoogleApiClient.connect() causes the app to crash every time. Is there anyway to know what the status code means?

[BaseServerTask]Server task (PingTask) got error statusCode=403.
    com.android.volley.AuthFailureError
    at com.android.volley.toolbox.BasicNetwork.performRequest(:com.google.android.gms:32)
    at lbf.performRequest(:com.google.android.gms:3)
    at com.android.volley.NetworkDispatcher.run(:com.google.android.gms:11)
    07-01 15:54:24.303 4839-19074/? E/ctxmgr: [ContextManager3PCredentialsVerifier]Failed ping response: network status=12
    07-01 15:54:24.304 4839-19081/? E/AbstractServiceBroker: Getting service failed

java.lang.SecurityException: Invalid API Key for package = com.example.android.project. Status code received = 12
    at cpm.a(:com.google.android.gms:19)
    at cpp.a(:com.google.android.gms:46)
    at ktv.a(:com.google.android.gms:41)
    at kwh.onTransact(:com.google.android.gms:8)
    at android.os.Binder.transact(Binder.java:507)
    at bxh.onTransact(:com.google.android.gms:2)
    at android.os.Binder.execTransact(Binder.java:573)
    07-01 15:54:24.520 19508-19508/com.example.android.project E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.android.project, PID: 19508

java.lang.SecurityException: Invalid API Key for package = com.example.android.project. Status code received = 12
    at android.os.Parcel.readException(Parcel.java:1693)
    at android.os.Parcel.readException(Parcel.java:1646)
    at com.google.android.gms.common.internal.zzax.zza(Unknown Source)
    at com.google.android.gms.common.internal.zzd.zza(Unknown Source)
    at com.google.android.gms.internal.zzbcj.zzpV(Unknown Source)
    at com.google.android.gms.internal.zzbcn.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at com.google.android.gms.internal.zzbgx.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:762)

这个错误没有意义,因为在开发者控制台中,我将 API 密钥设置为无限制,希望它能解决这个问题,即没有锁定到任何项目,它仍然无法工作.并且在控制台中启用了 API.

This error does not make sense, because in the Developer Console I set the API key to have no restriction hoping it would solve this, i.e. not locked to any project and it still will not work. And the API is enabled in the console.

我尝试了其他线程的建议:无法连接到 Google API客户端?尝试时接收错误连接到 Google Awareness 服务等.但问题仍然存在.

I've tried suggestions from other threads: Unable to connect to Google API CLient?, Receiving error when trying to connect with Google Awareness services, etc. But the problem remains.

public class MainActivity extends AppCompatActivity implements 
GoogleApiClient.OnConnectionFailedListener, 
GoogleApiClient.ConnectionCallbacks {


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

        // Connect to Awareness API
        mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Awareness.API)
            .build();
        mGoogleApiClient.connect(); // the app crashes here

    }
}

最后是我的 AndroidManifest:

Lastly my AndroidManifest:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.android.project">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@drawable/appicon"
    android:label="@string/app_name"
    android:roundIcon="@drawable/appicon"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <meta-data
        android:name="com.google.awareness.API_KEY"
        android:value="MY_API_KEY"/>
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="MY_API_KEY"/>
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>

</manifest>

我不知道该怎么办,有人有什么建议吗?

I don't know what to do, does anyone have any suggestions?

我正在三星 Galaxy S6 上对此进行测试,Android 版本:7.0

I'm testing this on an Samsung Galaxy S6, Android Version: 7.0

推荐答案

AndroidManifest 中您的 API_KEY 似乎设置不正确:注意正确的包名是

It seems like your API_KEY is set up incorrectly in the AndroidManifest: note that the right package name is

"com.google.android.awareness.API_KEY"

"com.google.android.awareness.API_KEY"

而不是

"com.google.awareness.API_KEY"

"com.google.awareness.API_KEY"

正如你所拥有的那样.请参阅 https://developers.google.com/awareness/android-api/get-开始

as you seem to have it. See https://developers.google.com/awareness/android-api/get-started

这篇关于Google Awareness API、API 密钥无效、崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆