Cannot call LoginFragment with a null calling package. This can occur if the launchMode of the caller is singleInstance.

 안드로이드 애플리케이션에 페이스북 로그인 연동을 하는 과정에서 다음과 같은 오류가 발생하였습니다.



 Cannot call LoginFragment with a null calling package. This can occur if the launchMode of the caller is singleInstance.


안드로이드 애플리케이션에서 제공되는 Facebook 로그인의 경우 로그인을 호출하는 Activity에서 다른 Activity를 호출할 때 single instance 방식으로 호출할 경우 로그인 창이 실행조차 되지 않는 상황이 발생합니다. single instance 방식은 안드로이드 애플리케이션 제작에 있어 최대한 지양하도록 공식적으로 가이드 되고 있으며 Facebook 로그인 라이브러리 또한 이를 준수하기 위해 single instance 방식의 호출을 막아둔 것으로 보입니다.


 이를 해결하기 위해 AndroidManifest.xml 파일을 열어 Facebook 로그인과 관련된 모든 <Activity >의 속성 안에


1
2
3
4
5
<activity 
    ....
    android:launchMode="standard"
    ....
</activity>
cs


 위와 같이 launch mode를 single instance에서 다른 것(standard 권장)으로 변경해주시면 로그인이 되는 것을 확인하실 수 있습니다.