2012-02-06 12 views
4

私はFacebookのいくつかのものを投稿したいアンドロイドunity3dプロジェクトに取り組んでいます。 基本的に、このアプリは自分のコントロールできない活動を実行しています。 Facebookのシングルサインオンでは、自分のものを表示するためのアクティビティを提供する必要があります。 問題は、フェイスブックへの投稿のトリガがUnityアクティビティ(ネイティブコードからJNIまで)から外れていることです。その基本的にはネイティブコードの単一性から作成されたコネクターとしての私の普通のJavaオブジェクトであり、私はそれをメソッドと呼ぶことができます。 currentActivityへのアクセス可能な参照もあります。それでも何かをするのに苦労している。アンドロイドの活動は、非スレッドから

私はいつも

AndroidRuntime(12845): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 

を取得し、私はにバインドする活動として)(認可のFacebookに、この現在のアクティビティの参照を与えることを試みたが、エラーが発生します。 自分の活動に切り替えようとしたところ、そこでFacebookを始めたいと思っていました。 も同じエラーが発生しました。 はこの

Intent intent = new Intent(UnityPlayer.currentActivity.getApplicationContext(), MyActivity.class); 
UnityPlayer.currentActivity.startActivity(intent); 

また、いくつかの他の類似のものを試してみましたが、ちょうど活動を切り替えることはできません。 どうすればよいですか? UI操作がワーカースレッド上で実行することができないためである

おかげ

答えて

7

runOnUiThreadを試してください。

UnityPlayer.currentActivity.runOnUiThread(new Runnable() { 
public void run() { 
    Intent intent = new Intent(UnityPlayer.currentActivity.getApplicationContext(),MyActivity.class); 


UnityPlayer.currentActivity.startActivity(intent); 
} 

}); 
+0

私は少しあなたが提案したコードを変更する必要がありましたが、それは完全に働いた、私は自分自身をこれを理解ことがなかったおかげでたくさん; O) – Stan

+0

は、あなたはそれを動作させることができました正確にどのように共有してくださいもらえますか?どうもありがとう。 –

+1

私はそれを考え出した!私はチュートリアルをここに掲載しました:http://forum.unity3d.com/threads/138036-Integrating-a-number-of-Android-SDKs(JAR)-to-Unity-Android?p=940739#post940739 –

関連する問題