Я пытался создать пользовательский тип данных для приложения, подходящего для Google, и я столкнулся с несколькими ошибками. Первоначально ConfigApi.createCustomDataType получал следующую ошибкуСоздание пользовательского DataType для GoogleFit
«не статический метод«createCustomDataType (com.google.android.gms.common.api.GoolgeApiClient, com.google.android.gms.fitness.request.DataTypeCreateRequest) не может можно ссылаться из статического контекста»
Я инстанцирован в ConfigApi, чтобы обойти эту ошибку, а затем я получил следующее сообщение об ошибке, когда я запустил приложение:
java.lang.NullPointerException: Попытка вызвать метод интерфейса пустоты com.google.android.gms.common.api.PendingResult.setResultCallback (com.google.android.gms.common.api.ResultCallback) 'на ссылке нулевого объекта
Эта ошибка приходит на этой линии: pendingResult.setResultCallback
Я надеюсь, что кто-то может помочь мне с того, что я делаю неправильно, прежде чем начать, чтобы сделать больший беспорядок, чем у меня уже есть. Ниже приведен код, я работаю с:
// build a request to create a new data type
DataTypeCreateRequest request = new DataTypeCreateRequest.Builder()
.setName(myPackageName)
.addField("custom", Field.FORMAT_INT32)
.build();
// invoke the CONFIG API with (Google API client object and create data type request)
// instantiating ConfigApi due to the following error:
// non-static method createCustomDataType cannot be referenced from a static context
ConfigApi configApi = new ConfigApi() {
@Override
public PendingResult<DataTypeResult> createCustomDataType(GoogleApiClient googleApiClient, DataTypeCreateRequest dataTypeCreateRequest) {
return null;
}
@Override
public PendingResult<DataTypeResult> readDataType(GoogleApiClient googleApiClient, String s) {
return null;
}
@Override
public PendingResult<Status> disableFit(GoogleApiClient googleApiClient) {
return null;
}
};
PendingResult<DataTypeResult> pendingResult =
configApi.createCustomDataType(mClient, request);
/**
* ConfigApi.createCustomDataType was getting the following error:
* non-static method 'createCustomDataType
* (com.google.android.gms.common.api.GoolgeApiClient,
* com.google.android.gms.fitness.request.DataTypeCreateRequest)
* cannot be referenced from a static context
*/
// 3. Check the result asynchronously
// (The result may not be immediately available)
pendingResult.setResultCallback(
new ResultCallback<DataTypeResult>() {
@Override
public void onResult(DataTypeResult dataTypeResult) {
if (dataTypeResult.getStatus().isSuccess()){
DataType customType = dataTypeResult.getDataType();
// Use this custon data type to insert data in your app
onDataTypeAvailable(customType);
}
// Retrieve the created data type
// Use this custom data type to insert data in your app
// (see other examples)
}
}
);
}
Спасибо, я не понимал, что могу добавить несколько API-интерфейсов в GoogleApiClient –