現在、実行時に 148 行目でエラーが発生しています。
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at PlantDB/ResultFill()[C:\Users\usern\Adobe Flash Builder 4.6\PlantDB\src\SQLiteCode.as:148]
148 行目のコードは次のとおりです。
leftList.dataProvider = new ArrayCollection(arr);
この 148 行に到達する前に、プログラムは Array arr が null でないことを if (arr != null) でチェックしたので、arr が null でないことは 100% 確信しています。
arr の内容は sqlite からのものです。
arr = sqls.getResult().data;
データベースにはいくつかのオブジェクトがあり、データベースからコンテンツを問題なく取得できることがわかりました。実際、148 行目の前で、arr 内の内容を次のように確認しました。
var tree:TreeClass_Full = arr[0];
デバッガーで上記のツリー オブジェクトを確認したところ、sqlite データベースのすべての変数が正しくツリー オブジェクトに転送されていることがわかりました。実際、arr[1]、arr[2] などもチェックしましたが、オブジェクトが正しいデータを取得していることがわかります。
私の意見では、sqlite などは問題ないようですが、この Array arr を var tree:TreeClass_Full = arr[0]; に追加すると、エラーが発生します。
理解できません。null オブジェクト参照のプロパティまたはメソッドにアクセスできませんか? このエラーの原因となる dataProvider の隠しプロセスは何ですか?
私の leftList はここにあります:
<s:HGroup width="100%" height="85%" verticalAlign="middle">
<s:List id = "leftList" width = "45%" height = "95%"
dragEnabled="true" dragMoveEnabled="true" dropEnabled="true"
itemRenderer="resultRenderer"/>
<s:List id = "rightList" width = "45%" height = "95%"
dragEnabled="true" dragMoveEnabled="true" dropEnabled="true"
itemRenderer="resultRenderer"/>
</s:HGroup>
私のitemRenderer(resultRenderer)は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:HGroup x="5" y="5" width="350" height="150" horizontalAlign="center" verticalAlign="middle">
<mx:Image id = "resultImage" width="100" height="100"/>
<s:TextArea id="resultTextArea" height="141" editable="false"
text = "{data.Common_Name}"/>
</s:HGroup>
</s:ItemRenderer>
dataProvider 中にこのエラーが発生する原因を誰かが知っている場合は、助けてください。