我一直在尝试为 google fit 应用程序创建自定义数据类型,但遇到了一些错误。最初 ConfigApi.createCustomDataType 收到以下错误
“不能从静态上下文引用非静态方法‘createCustomDataType (com.google.android.gms.common.api.GoolgeApiClient, com.google.android.gms.fitness.request.DataTypeCreateRequest)”
因此,我实例化了 ConfigApi 以绕过该错误,然后在运行应用程序时出现以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用接口方法“void 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)
}
}
);
}