2014-09-30 12 views
4

내 게임에서 Facebook Unity SDK와 함께 Parse Unity SDK를 사용하여 사용자가 Facebook 계정으로 로그인 할 수 있습니다.ParseFacebookUtils.LogInAsync는 WebPlayer에서만 오류를 발생합니다.

휴대 전화 (Android 및 iOS)와 편집기에서 잘 작동합니다.

:

페이스 북 캔버스 (웹 플레이어)에서

, 모든 브라우저 (크롬, 사파리, 파이어 폭스) 내 주요 세션 (관리자), 내 컴퓨터 (맥 미니),에,이 코드를 호출 할 때 오류가 발생

ABOUT TO LOGIN 

TrySetSetString can only be called from the main thread. 
Constructors and field initializers will be executed from the loading thread when loading a scene. 
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function. 

IN TASK 

[FacebookManager] Error LogInAsync 

System.AggregateException: Exception of type 'System.AggregateException' was thrown. 
--------- 
System.ArgumentException: TrySetSetString can only be called from the main thread. 
Constructors and field initializers will be executed from the loading thread when loading a scene. 
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function. 
    at (wrapper managed-to-native) UnityEngine.PlayerPrefs:TrySetSetString (string,string) 
    at UnityEngine.PlayerPrefs.SetString(System.String key, System.String value)[0x00000] in /Applications/buildAgent/work/___SOME_ID____/artifacts/WebPlayerGenerated/PlayerPrefsBinding.cs:62 
    at Parse.PlatformHooks+SettingWrapper.Save()[0x00000] in <filename unknown>:0 
    at Parse.PlatformHooks+SettingWrapper.set_Item (System.String key, System.Object value) [0x00000] in <filename_unknown>:0 
    at Parse.ParseUser.SaveCurrentUser(Parse.ParseUser user) [0x00000] in <filename unkwnown>:0 
    at Parse.ParseUser.<SignUpAsync>b__0 (Sustem.Threading.Tasks.Task _) [0x00000] in <filename unknown>:0 
    at Parse.Internal.InternalExtensions+<>c__DisplayClassa.<OnSuccess>b__9 (System.Threading.Tasks.Task t) [0x00000] in <filename unknown>:0 
    at Parse.Internal.InternalExtensions+<>c__DisplayClass7`1[System.Object].<OnSuccess>b__6 (System.Threading.Tasks.Task t) [0x00000] in <filename unknown>:0 
    at System.Threading.Tasks.Task+<>c__DisplayClass3`1+<>c__DisplayClass5[System.Threading.Tasks.Task`1[System.Object]].<ContinueWith>b__2() [0x00000] in <filename unknown>:0 

이 오류는 내 컴퓨터에 다른 세션에 표시되지 않으며, 어느 팀 동료 '시스템에 표시되지 않습니다 다음과 같이

Debug.Log("ABOUT TO LOGIN"); 
ParseFacebookUtils.LogInAsync( FB.UserId,FB.AccessToken, 
             FB.AccessTokenExpiresAt).ContinueWith(x => 
{ 
    Debug.Log("IN TASK"); 
    if(x.IsFaulted || x.IsCanceled) 
    { 
     Debug.LogError("[FacebookManager] Error LogInAsync"); 
     Debug.Log(x.Exception); 
    } 
    else 
    { 
     // Connection successful 
     // ... 
    } 
} 

// CODE CONTINUES... 

출력이다. 여기

내가 (순서대로 반드시) 지금까지 뭘하려 :

  • 클리어 브라우저는 개인 탐색 모드
  • 에 시도
  • 삭제 unity3d.com/webplayer/setup에가는 캐시 모든 캐시 된 파일
  • unity3d.com/webplayer/setup을 사용하여 파일 캐싱을 사용하지 않음
  • Unity 웹 플레이어를 제거하고 새로 설치 (Chrome에서 다운로드)
  • 01
  • 모두
  • 의의
  • 제거 유니티 웹 플레이어, 복사 RW 디스크 내 컴퓨터에서
  • 변경된 PlayerPrefs 폴더의 권한과 파일을 모두 WebPlayerPrefs을 삭제 (파이어 폭스에서 다운로드) 23,516,
  • 제거하고 신선한 유니티 웹 플레이어의 설치 유니티 웹 플레이어 오류가

Additionaly LogInAsync 전에 내 코드에서`PlayerPrefs.DeleteAll()를 포함하여 수동으로

  • 를 설치 나타나지 않는 맥에서 파일을 여러 번 어디 일이있다 전자 게임도로드되지 않습니다 (게임 로고 +로드 바 대신 빈 캔버스). unity3d.com/webplayer/setup에 가면 빈 웹 플레이어가 가끔 발생합니다.

    나는이 문제가 권한 충돌 또는 내가 모르는 캐시에서 오는 것인지 확실히 확신하고있다.

    내가 지금 시도 할 수있는 아이디어가 있습니까?

  • 답변

    3

    동일한 문제가 발생했습니다. 제 경우에는 웹 플레이어 개발 릴리스 채널에 문제가있었습니다. 개발에서 출시 채널로 전환하십시오.

    http://docs.unity3d.com/Manual/WebPlayerChannels.html

    +2

    도움 주셔서 감사합니다. 필자는 현재 웹 플레이어 관련 문제 (Unity Canvas를로드하려고 할 때 흰색 페이지)와 관련된 다른 문제가 있습니다. 이 솔루션이 내 문제를 해결하면 확인할 수있는대로 즉시 게시 할 것입니다. – Ergo

    +0

    이 솔루션은 트릭을했습니다! 다시 감사합니다 ! – Ergo

    1

    from Unity docs

    나는 뭔가 다른이 오류를 가지고 당신이 동시에 선언과 할당을 만들려고 할 때 TrySetSetString가 발사 밝혀졌습니다.아마도 클래스 선언 맨 위에 다음과 같은 것이 있습니다.

    ParseObject userInfo = new ParseObject ("UserInfo");

    이렇게하면 나에게도 같은 오류가 발생하지만 제거하면 오류가 사라집니다. 희망이 당신의 문제를 해결합니다.

    +1

    나는 수업에서 그런 선언을한다. 나는 당신의 해결책을 시도하고 나의 결과를 게시 할 것이다. 고맙습니다 ! – Ergo