Apache flex Flex错误#1009:无法访问空对象引用的属性或方法

Apache flex Flex错误#1009:无法访问空对象引用的属性或方法,apache-flex,actionscript-3,facebook,Apache Flex,Actionscript 3,Facebook,我在运行用flex创建的游戏时出错。 我知道有一些问题,但我的情况很奇怪。我创建了一个简单的打字游戏,在我的电脑上运行正常,但当我试图将其在线部署到facebook时,我遇到了这些错误。我使用adobe教程中的代码将我的flex游戏部署到facebook 这是错误消息: TypeError: Error #1009: Cannot access a property or method of a null object reference. at FacebookUserStatusWe

我在运行用flex创建的游戏时出错。 我知道有一些问题,但我的情况很奇怪。我创建了一个简单的打字游戏,在我的电脑上运行正常,但当我试图将其在线部署到facebook时,我遇到了这些错误。我使用adobe教程中的代码将我的flex游戏部署到facebook

这是错误消息:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at FacebookUserStatusWeb/init()
    at FacebookUserStatusWeb/___FacebookUserStatusWeb_Application1_creationComplete()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()
    at mx.core::UIComponent/set initialized()
    at mx.managers::LayoutManager/doPhasedInstantiation()
    at mx.managers::LayoutManager/doPhasedInstantiationCallback()
下面是init()函数的片段:

            protected var text1:String="Text to be typed"; //hard-coded temporarily
            protected const TIMER_INTERVAL:int = 10;
            protected var t:Timer = new Timer(TIMER_INTERVAL);
            protected var topURL:String=ExternalInterface.call('top.location.toString');
            protected function init():void
                    {
                        t.addEventListener(TimerEvent.TIMER, updateTimer);
                        ProblemText.text = new String(text1);
                        Facebook.init("<my app id>",loginHandler);
                        currentState = (topURL) ? "loggedout": "loggedoutonfacebook";
                    }
protectedvar text1:String=“要键入的文本”//临时硬编码
保护常数计时器间隔:int=10;
受保护变量t:定时器=新定时器(定时器间隔);
受保护的变量topURL:String=ExternalInterface.call('top.location.toString');
受保护函数init():void
{
t、 addEventListener(TimerEvent.TIMER、updateTimer);
ProblemText.text=新字符串(text1);
Facebook.init(“,loginHandler);
currentState=(topURL)?“loggedout”:“loggedoutonfacebook”;
}
一些注意事项: 1.我的应用程序id是我不想显示的facebook应用程序id 2.ProblemText是一个richtext,我将它放在玩家要键入的段落中。 3.我已经删除了方法Application1\u creationComplete(),但它仍然出现在错误列表中

除前两个错误外,我还对其他错误感到好奇。它们是什么意思?
啊,如果有帮助的话,我可以先发布更多的代码:您只看到一个错误。在#1009错误下面看到的所有内容都是堆栈跟踪,而不是其他错误

堆栈跟踪基本上告诉您错误发生之前发生的一系列事件,最新的事件位于顶部。这是很有用的,因为通常在您看到的实际错误之前发生的事情会导致所述错误

Second:发生空对象引用是因为init()函数中的某些内容试图访问不存在的对象或不存在的对象中的属性。一种(稍微混乱但有效)的调试方法是在代码中删除一些跟踪语句,看看它在错误爆发之前能走多远——其思想是隔离导致问题的特定行。完成后,您需要反向工作,以找出您尝试使用的对象或属性为空的原因。它可以是简单的,比如打字错误,也可以更复杂。不管怎样,你都得仔细研究一下


祝你好运

终于找到了错误。以防万一,人们对我也有同样的看法,确切的情况是在我的电脑上,我用一个状态模拟了游戏,但当我部署到facebook时,我有几个状态(loggedin、loggedout等)。在init()中,我试图访问当前状态中不存在的ProblemText标签。

堆栈跟踪通常包含行号;你安装了调试播放器吗?肯定比我在下面的回答中建议的“跟踪”更可取=)