如何解决实例化 FacebookSessionUtil 后空对象引用的问题
-
19-09-2019 - |
题
我想你可以帮我解决这个小问题。
我是 Facebook 开发新手,选择 ActionScript 3 作为我的开发平台。我使用 SWC 库 官方 facebook-actionscript-api Adobe 推广的。
所以我遵循了他们的教程。所以我做了以下指示:
- 创建 Flex 项目。
- 下载并放置
Facebook_library_v3.4_flex.swc
到\lib
在 Flex 项目中。 提供以下代码:
import com.facebook.Facebook; import com.facebook.utils.FacebookSessionUtil; private var fbook:Facebook; private var session: FacebookSessionUtil; protected var api_key : String = "my-facebook-app-api-key"; protected var secret_key : String = "my-facebook-app-secret-key"; public function init() : void { //fbook = new Facebook(); session=new FacebookSessionUtil(api_key,secret_key,this.loaderInfo); var fbook : Facebook = session.facebook; session.validateLogin(); }
尝试运行调试会话后。执行此语句后出现错误:
session=new FacebookSessionUtil(api_key,secret_key,this.loaderInfo);
我想我做错了什么,但我无法弄清楚。您能提供建议或任何指导来帮助我吗?
这是我得到的异常:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.facebook.utils::FacebookSessionUtil()[C:\Users\MikeHunt\Work\FacebookAPI\src\com\facebook\utils\FacebookSessionUtil.as:128]
at CheeseZaa/init()[/Users/teerasej/Documents/Flex Builder 3?/freelance/CheeseZaa/src/CheeseZaa.mxml:24]
at CheeseZaa/___CheeseZaa_Application1_creationComplete()[/Users/teerasej/Documents/Flex Builder 3?/freelance/CheeseZaa/src/CheeseZaa.mxml:4]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9440]
at mx.core::UIComponent/set initialized()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1168]
at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8744]
at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8684]
我注意到异常的第一行显示了这一点:
com.facebook.utils::FacebookSessionUtil()[C:\Users\MikeHunt\Work\FacebookAPI\src\com\facebook\utils\FacebookSessionUtil.as:128]
但我不确定它是否涉及异常。
我的开发平台是:
- Macbook Pro
- OSX 雪豹 10.6
- Flash Player 10.0.32 调试器
- 火狐浏览器 3.6
- 弹性生成器 3.2
- Flex SDK 3.5
- Facebook_library_v3.4_flex.swc
每一个建议和指导都会感谢您。我认为这对于其他可能像我一样发现同样问题的开发人员来说是有好处的。
解决方案
loaderInfo 尚未准备好,当前为空。
尝试:-
public function init():void
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
private function onAddedToStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
session = new FacebookSessionUtil(api_key, secret_key, this.loaderInfo);
var fbook:Facebook = session.facebook;
session.validateLogin();
}
不隶属于 StackOverflow