Android framework 쪽 소스를 좀 살펴보니 FragmentActivity에서 발생하는 Exception으로 확인되네요.
/**
* Modifies the standard behavior to allow results to be delivered to fragments.
* This imposes a restriction that requestCode be <= 0xffff.
*/
@Override
public void startActivityForResult(Intent intent, int requestCode) {
if (requestCode != -1 && (requestCode&0xffff0000) != 0) {
throw new IllegalArgumentException("Can only use lower 16 bits for requestCode");
}
super.startActivityForResult(intent, requestCode);
}
위의 부분에서 throw되어 exception이 발생한것으로 보입니다.
아마도 REQUEST CODE자체가 0xffff 보다 높은 수를 사용하시는 것 같습니다. (65535보다 큰 수)
가장 쉬운 방법은
1. intent를 전달하실 때 request code를 65535보다 작게 만들거나 (그러면서 0보다는 커야 할겁니다.)
2. startActivityForResult를 override 하셔서 request code를 변경하시는 것으로 보입니다.
나머지 코드는 보이지 않아서 추가적으로 답변드리기는 힘들것 같네요