"Object reference not set to an instance of an object." が発生するようになった

23.6.1-beta.13324+Branch.release-v23.6.1.Sha.52787b786620e97cba5555379da6e6bb423b3e6b

Object reference not set to an instance of an object.

エラー: System.Exception: Object reference not set to an instance of an object.
at System.Activities.Presentation.Validation.ValidationService.MarkParents(ValidationError validationError, IEnumerable1 errorParents, ModelItem source) at System.Activities.Presentation.Validation.ValidationService.MarkError(ValidationError validationError, List1 errorSourcePath, ModelItem source)
at System.Activities.Presentation.Validation.ValidationService.MarkErrors(ICollection1 errors, ValidationReason reason, Activity rootActivity) at System.Activities.Presentation.Validation.ValidationService.OnValidationWorkCompleted(Tuple3 input)
at System.Activities.Presentation.Validation.BackgroundValidationSynchronizer`1.<>c__DisplayClass26_0.b__0()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler), HResult -2147467261

と言うエラーが出るようになりました。
同じ構成で稼働中のものがあり、それとこの問題が起きているフローとの違いは
・「Windows (.NET 5.0 以上)」の対応をした
・依存パッケージをバージョンアップした
などです。他にもたくさん問題は起きましたが、特にこの問題は起きる理由もわかりません。

コメントアウトをしておいて問題が発生するところを突き止めたところ、
「要素が出現したとき」OnUiElementAppearのアクティビティで、ExcelVBAによるポップアップメッセージをとらえてクリックをする、と言うところで発生しています。
過去の同じメッセージでの問い合わせも確認しましたが、和訳すると「このエラーは通常、初期化されていない変数、またはデータが一度も設定されていない変数があることを意味します。」とあり、
元々が


と言う状態で、確かに検出した要素「UiExistEr」を使っていないようでしたので、
いっそのことこれを使わない(空欄にした状態)にしても同じエラーがでます。
(最初からアクティビティを指定しなおしても同じエラーが出ます。)

このアクティビティは「要素があったら○○をする」ものだと思っていて、要素が見つかったらクリックする、というように使っていましたが、そもそも使い方が間違っているのでしょうか?

こんにちは

バグまたはバージョンアップに伴う非互換なので、違うアクティビティ使った方が良いかと思います。
以下類似トピックです

実現したいことにもよりますが
CheckAppStateをつかうか
あるいは
TriggerScope + ApplicationEventTrigger
あたりで代替すると良いかと思います。

ご返信、有難うございます。ひとまず別のアクテビティで試してみます。
(ただ、23.6.1-beta で CheckAppState や TriggerScope そのままのアクティビティは存在しないようです?)

こちらの環境ではありますが...

image

1 Like

確認まで遅くなりましたが、やっぱりでてきません?
なにか更新不足だったりあるでしょうか。。。パッケージは全て最新の状態でした。
image
Installed>UI Automation 下をたどってみましたが、Applicationにあたるものが見受けられないようでした。
image

本題とはずれてしまいますし、今回は別のアクティビティを試してみたいと思います。

日本語ですと「アプリのステートを確認」なのでこちらで検索してもらえますでしょうか?

有難うございます。先日、Googleで「CheckAppState」を検索した結果が仰る通り「アプリのステートを確認」でしたので、そちらも試みていたのですが、
真っ白でなにもでてきません。(「結果がみつかりませんでした」ともいわれないのが怪しいと思い始めましたが。)
image

こんにちは

UiAutomation.Activities packageのバージョンはいくつになっていますでしょうか?
古ければ最新安定版にしてみてください

またモダンデザインエクスペリエンスの設定はどのようになっていますでしょうか?
OFFならOnにするかアクティビティパネルのフィルタ設定でモダン表示を有効にしてみてください

1 Like


依存パッケージは全て最新です。
で、アクティビティパネルのフィルタ設定でモダン表示を有効にしたところ、出てきました!有難うございます。

image
ほか、同じくフィルタで「トリガー」にもチェックをつけたら、トリガースコープも出てきました。有難うございます。
image

「アプリのステートを確認」を利用して、無事解決しました!ご対応いただき有難うございました。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.