0

Facebook의 API를 사용하여 Android 앱의 사진이있는 새 앨범을 만들었지 만, 이러한 성가신 오류는 계속 발생합니다. 감각. 나는 약간의 연구를했지만 아무 것도 생각 나지 않았습니다. 도와주세요! 51 : 50.501 : Facebook에 이미지를 업로드하려고하지만 "Key format expected byte []"가 표시됩니다.

String albumName = ((TextView)findViewById(R.id.album_name)).getText().toString(); 
Bundle params = new Bundle(); 
params.putByteArray("pictures", toByteArray(mediaPath[0])); 
params.putString("name", albumName); 
request.request("https://graph.facebook.com/me/albums",params,"POST", new UploadListener(), new Object()); 

내 로그 고양이

01-26 (15)에 봐 번들/W (616) : 키 형식 예상 바이트 []하지만 값이있는 java.lang했다. 끈. 기본값이 리턴되었습니다. 01-26 16 : 07 : 48.871 : D/Facebook-Util (670) : POST URL : https://graph.facebook.com/https://graph.facebook.com/me/albums 01-26 16 : 07 : 48.891 : W/Bundle (670) : 키 형식 예상 바이트 [] java.lang.String. 기본값이 리턴되었습니다. 01-26 16 : 07 : 48.891 : W/번들 (670) : 생성 된 내부 예외 캐스팅 시도 : 01-26 16 : 07 : 48.891 : W/번들 (670) : java.lang.ClassCastException : java.lang .String 01-26 16 : 07 : 48.891 : W/Bundle (670) : android.os.Bundle.getByteArray (Bundle.java:1305) 01-26 16 : 07 : 48.891 : W/Bundle (670) : com.facebook.android.Util.openUrl (Util.java:155) 01-26 16 : 07 : 48.891 : W/Bundle (670) : com.facebook.android.Facebook.request (Facebook.java : (AsyncFacebookRunner.java:253) 01-26 16 : 07 : 49.390 : D/dalvikvm (2) (670) : GC_CONCURRENT는 2526K, 5789K, 5789K/6493K 외부, 5789K/6493K 일시 중지, 5ms + 4ms 01-26 16 : 07 : 49.560 : W/Bundle (670) : 주요 메소드 예상 바이트 [], 값 w java.lang.String로서. 기본값이 리턴되었습니다. 01-26 16 : 07 : 49.560 : W/번들 (670) : 생성 된 내부 예외 캐스팅 시도 : 01-26 16 : 07 : 49.560 : 번들 (670) : java.lang.ClassCastException : java.lang .String 01-26 16 : 07 : 49.560 : W/Bundle (670) : android.os.Bundle.getByteArray (Bundle.java:1305) 01-26 16 : 07 : 49.560 : W/Bundle (670) : com.facebook.android.Util.encodePostBody (Util.java:63) 01-26 16 : 07 : 49.560 : 번들 (670) : com.facebook.android.Util.openUrl (Util.java : 182) 01-26 16 : 07 : 49.560 : W/Bundle (670) : com.facebook.android.Facebook.request (Facebook.java:717) 01-26 16 : 07 : 49.560 : W/Bundle 670) : at com.facebook.android.AsyncFacebookRunner $ 2.run (AsyncFacebookRunner.java:253) 01-26 16 : 07 : 49.570 : W/Bundle (670) : 예상되는 주요 바이트 형식은 byte이지만 값은 java입니다. lang.String. 기본값이 리턴되었습니다. 01-26 16 : 07 : 49.570 : W/번들 (670) : 생성 된 내부 예외 캐스팅 시도 : 01-26 16 : 07 : 49.570 : 번들 (670) : java.lang.ClassCastException : java.lang .String 01-26 16 : 07 : 49.570 : W/Bundle (670) : android.os.Bundle.getByteArray (Bundle.java:1305) 01-26 16 : 07 : 49.570 : W/Bundle (670) : com.facebook.android.Util.encodePostBody (Util.java:63) 01-26 16 : 07 : 49.570 : 번들 (670) : com.facebook.android.Util.openUrl (Util.java : 182) 01-26 16 : 07 : 49.570 : W/Bundle (670) : com.facebook.android.Facebook.request (Facebook.java:717) 01-26 16 : 07 : 49.570 : W/Bundle 670) : com.facebook.android.AsyncFacebookRunner에서 $ 2.run (AsyncFacebookRunner.java:253) 01-26 16 : 07 : 49.610 : D/dalvikvm (670) : GC_FOR_MALLOC은 258K, 57 % 무료 4445K/10311K, 외부 5789K/649 3K, 일시 중지됨 38ms 01-26 16 : 07 : 49.670 : D/dalvikvm-heap (670) : 2903026 바이트 할당의 경우 힙 (슬래시 케이스)을 15.307MB로 늘림 01-26 16 : 07 : 49.670 : (670) : GC_FOR_MALLOC이 (가) < 1K, 45 % 무료 7280K/13191K, 외부 5789K/6493K, 일시 중지 32ms 01-26 16 : 07 : 49.781 : D/dalvikvm (670) : GC_CONCURRENT 해제 4K, 45 % 무료 7280K/13191K , 외부 5789K/6493K, 일시 중지 된 4ms + 5ms 01-26 16 : 07 : 54.990 : dalvikvm (670) : threadid = 16 : catch되지 않은 예외 (그룹 = 0x40015560)로 스레드 종료 01-26 16:07:54 .990 : E/AndroidRuntime (670) : 치명적인 예외 : 스레드 (19)

답변

1

교체하십시오 :

params.putByteArray("pictures", toByteArray(mediaPath[0])); 

으로 :

params.putString("pictures", mediaPath[0]); 

그것은 분명히 바이트 []를 만족 아니다 그게 내가 시작할 줄이야. (즉, 이름에서 알 수 있듯이 mediaPath는 [] 문자열 배열입니다 가정의

문제가 해결되지 않으면, 확인 후 사진을 추가, 먼저 앨범을 만드는 솔루션 here for working album creation보십시오. 잘

+0

난 아직 시도하고를 이번에는 "mAsyncRunner.request (null, params,"POST ", new UploadListener(), null);"를 사용하여 사진을 업로드합니다. "여전히 키 액세스 토큰이 예상되는 byte []를 얻고 있습니다. 그냥 문자열을 먹이려고했는데 작동하지 않았습니다. 바이트 배열을 요청하는 것이 확실하지만 무엇을해야합니까? –