0

Resourceid에서 Resourceid를 가져 오려고 할 때 첫 번째 오류가 발생합니다.gullabointer에서 삭제 파일에 Nullpointer가 있습니다.

DriveFile dfile= Drive.DriveApi.getFile(mGoogleApiClient,DriveId.decodeFromString(driveId));            
Log.e(TAG,"Driveid>>>>" + driveId);            
String resourceID= dfile.getDriveId().getResourceId().toString(); 

리소스 ID가 있고 Google 드라이브에서 항목을 삭제하려고 할 때마다. 여기

com.google.api.services.drive.Drive service; 

service.files().delete(resourceID).execute(); 

로그 캣 오류 :

enter image description here

나에게 구글 드라이브에서 파일 삭제를위한 표준 솔루션을주지하시기 바랍니다.

+0

당신이 로그 캣을 게시 할 수 ...? – DJhon

+0

언제든지 dfile.getDriveId()를 얻으려고합니다. getResourceId(); 그것은 나를 돌려 준다 null pointer –

+0

나도 모르지만 몇 가지 방법은 때때로 내가 resourceid 있지만 service.files(). delete (resourceID) .execute() 날 null 포인터를 반환 –

답변

0

'쓰레기'의 경우 을 REST Api와 더 이상 함께 사용할 필요가 없습니다. GooPlaySvcs는 7.0 (2015 년 3 월)부터 GDAA에 'trash()' 메소드가있어 ResourceId가 필요하지 않으며 대기 시간/대기 시간과 관련된 timing issues에서 사용자를 보호합니다.

간단한 데모 용으로 ResourceId가 필요없는 GDAA의 '휴지통'래퍼가 있습니다. 그 위에, 당신은 네트워크 (와이파이) 온라인/오프라인 상태에 대해 걱정할 필요가 없습니다.

private static GoogleApiClient mGAC; 
... 
static void trash(DriveId dId) { 
    if (mGAC != null && mGAC.isConnected() && dId != null) { 
    DriveResource driveResource; 
    if (dId.getResourceType() == DriveId.RESOURCE_TYPE_FOLDER) { 
     driveResource = Drive.DriveApi.getFolder(mGAC, dId); 
    } else { 
     driveResource = Drive.DriveApi.getFile(mGAC, dId); 
    } 
    if (driveResource != null) { 
     driveResource.trash(mGAC).setResultCallback(new ResultCallback<Status>() { 
     @Override 
     public void onResult(Status status) { 
      // bingo, trashed successfully !!! 
     } 
     }); 
    } 
    } 
} 

행운

2

새로 생성 된 파일의 경우 resourceId가 바로 채워지지 않습니다. 파일이 서버에 커밋되면 채워집니다. 사용하기 전에 null인지 확인해야합니다.