初めに
最近スマホアプリを開発したくてMAUIを使い始めました!
ももかです💓🍑
しかし、MAUIは新しいプラットフォームで日本語の記事が少ない😢
この記事ではMAUIでInitializeComponentでエラーが出た時の解決法を紹介します!
対象の現象
MAUIでcontentPageを追加して、エラー発生
”InitializeComponentは現在のコンテキスト内に存在しません”
というエラーがでる。
ズバリ!解決法
ググると出てくる(※下に書いてあります)をやってみてダメだったら、
①先ずは”ビルドアクション”を確認しましょう。
拡張子が.xamlのファイルはMauiXaml
.xaml.csのファイルはC#コンパイラ
にします。
▼ビルドアクションの確認の仕方
ソリューションエクスプローラー>対象のファイルを右クリック>プロパティ>ビルドアクション
②Usingをコメントアウトする。
③ググると出てくる(※下に書いてあります)の(3)をやる
④アンドロイドシュミレーターを”出荷時の状況”にする。
⑤リビルド
②~⑤はInitializeComponentのエラーには直接関係ありませんが、やるとうまくいった!
結果
ビルドアクションがデフォルト設定だとうまくいかない。
ググると出てくる
1).xamlと.xaml.csのクラス名が一致していることを確かめる。
以下の様に.xamlという名前のファイルのx:Class=と
.xaml.csのクラス名を一致させましょう。
また、namespaceも一致する必要があるので、ご注意ください。
(自分はMainPage.xamlのContentPageをコピペして貼り付けた後にクラス名だけ変えるとうまくいきました。)
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TEST.MainPage">
以下のコード:MainPage.xaml.cs
namespace TEST;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
}
2)InitializeComponent();を一度コメントアウトしてビルドしてから、コメントアウトを外してもう一度ビルドする。
3)binファイルとobjファイルを削除し、リビルド。その後visual stdio再起動。
参考:
https://www.binarydevelop.com/article/initializecomponent-19114
http://www.kanazawa-net.ne.jp/~pmansato/wpf/wpf_resource.htm
https://osakanav.com/initializecomponent-c-error
https://qiita.com/nambara/items/d7fbec1a8f4513a12e35
https://www.binarydevelop.com/article/initializecomponent-19114
https://qiita.com/shuhey/items/b7cdd090fcb3372813dc
https://stackoverflow.com/questions/145752/what-are-the-various-build-action-settings-in-visual-studio-project-properties
https://qastack.jp/programming/145752/what-are-the-various-build-action-settings-in-visual-studio-project-properties
https://ufcpp.net/study/dotnet/wpf_xamlbasic.html
以下は特に参考にさせて頂きました。
https://blog.goo.ne.jp/pianyi/e/b529957ae57b6851d574a418ff687ed2
http://m0kichiazuma416.blog.fc2.com/blog-entry-70.html
https://stackoverflow.com/questions/68046917/new-net-maui-app-project-throws-the-name-initializecomponent-does-not-exist