Google 位 API 位开发者
Google places API multiple developers
我们是一个团队,正在共同开发 android 应用程序。
不幸的是,只有使用 google 地方 API 编写代码的人可以 运行 activity,而其他人则不能。
我们在使用 google 映射 API 时遇到了同样的问题,但这是因为我们都使用了相同的 API 键。
更改 API 密钥(每个人都有自己的密钥)后,问题就停止了。
这是导致崩溃的代码(同样,编写 activity 的人设法 运行 它)
public void refreshPlacesData() {
Uri uri = PlaceContract.PlaceEntry.CONTENT_URI;
Cursor data = getContentResolver().query(
uri,
null,
null,
null,
null);
if (data == null || data.getCount() == 0) return;
List<String> guids = new ArrayList<String>();
while (data.moveToNext()) {
guids.add(data.getString(data.getColumnIndex(PlaceContract.PlaceEntry.COLUMN_PLACE_ID)));
}
PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi.getPlaceById(mClient,
guids.toArray(new String[guids.size()])); <---this is where it crash
placeResult.setResultCallback(new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(@NonNull PlaceBuffer places) {
mAdapter.swapPlaces(places);
mGeofencing.updateGeofencesList(places);
if (mIsEnabled) mGeofencing.registerAllGeofences();
}
});
}
这是错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rubz.dvir.rubz, PID: 25203
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.rubz.dvir.rubz/com.rubz.dvir.rubz.JobRequestActivity}: java.lang.NullPointerException: GoogleApiClient must not be null
at android.app.ActivityThread.deliverResults(ActivityThread.java:3382)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3425)
at android.app.ActivityThread.access00(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1248)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5105)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException: GoogleApiClient must not be null
at com.google.android.gms.common.internal.zzbq.zza(Unknown Source)
at com.google.android.gms.common.api.internal.zzm.<init>(Unknown Source)
at com.google.android.gms.location.places.zzm$zzb.<init>(Unknown Source)
at com.google.android.gms.location.places.zzm$zzc.<init>(Unknown Source)
at com.google.android.gms.location.places.internal.zzl.<init>(Unknown Source)
at com.google.android.gms.location.places.internal.zzh.getPlaceById(Unknown Source)
at com.rubz.dvir.rubz.JobRequestActivity.refreshPlacesData(JobRequestActivity.java:445)
at com.rubz.dvir.rubz.JobRequestActivity.onActivityResult(JobRequestActivity.java:515)
at android.app.Activity.dispatchActivityResult(Activity.java:5467)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3378)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3425)
at android.app.ActivityThread.access00(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1248)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5105)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
Application terminated.
您可以将多个 SHA-1's 添加到您的位置 api ,转到 cloud console
然后selectGoogle放置Api,限制你的Api,然后添加SHA的
希望对您有所帮助
我们是一个团队,正在共同开发 android 应用程序。
不幸的是,只有使用 google 地方 API 编写代码的人可以 运行 activity,而其他人则不能。
我们在使用 google 映射 API 时遇到了同样的问题,但这是因为我们都使用了相同的 API 键。
更改 API 密钥(每个人都有自己的密钥)后,问题就停止了。
这是导致崩溃的代码(同样,编写 activity 的人设法 运行 它)
public void refreshPlacesData() {
Uri uri = PlaceContract.PlaceEntry.CONTENT_URI;
Cursor data = getContentResolver().query(
uri,
null,
null,
null,
null);
if (data == null || data.getCount() == 0) return;
List<String> guids = new ArrayList<String>();
while (data.moveToNext()) {
guids.add(data.getString(data.getColumnIndex(PlaceContract.PlaceEntry.COLUMN_PLACE_ID)));
}
PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi.getPlaceById(mClient,
guids.toArray(new String[guids.size()])); <---this is where it crash
placeResult.setResultCallback(new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(@NonNull PlaceBuffer places) {
mAdapter.swapPlaces(places);
mGeofencing.updateGeofencesList(places);
if (mIsEnabled) mGeofencing.registerAllGeofences();
}
});
}
这是错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rubz.dvir.rubz, PID: 25203
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.rubz.dvir.rubz/com.rubz.dvir.rubz.JobRequestActivity}: java.lang.NullPointerException: GoogleApiClient must not be null
at android.app.ActivityThread.deliverResults(ActivityThread.java:3382)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3425)
at android.app.ActivityThread.access00(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1248)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5105)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException: GoogleApiClient must not be null
at com.google.android.gms.common.internal.zzbq.zza(Unknown Source)
at com.google.android.gms.common.api.internal.zzm.<init>(Unknown Source)
at com.google.android.gms.location.places.zzm$zzb.<init>(Unknown Source)
at com.google.android.gms.location.places.zzm$zzc.<init>(Unknown Source)
at com.google.android.gms.location.places.internal.zzl.<init>(Unknown Source)
at com.google.android.gms.location.places.internal.zzh.getPlaceById(Unknown Source)
at com.rubz.dvir.rubz.JobRequestActivity.refreshPlacesData(JobRequestActivity.java:445)
at com.rubz.dvir.rubz.JobRequestActivity.onActivityResult(JobRequestActivity.java:515)
at android.app.Activity.dispatchActivityResult(Activity.java:5467)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3378)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3425)
at android.app.ActivityThread.access00(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1248)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5105)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
Application terminated.
您可以将多个 SHA-1's 添加到您的位置 api ,转到 cloud console
然后selectGoogle放置Api,限制你的Api,然后添加SHA的
希望对您有所帮助