Visual Studio 2015で新しく作成されたXamarin.Formsアプリに問題があります。ソリューションにDroid/iOSプロジェクトを追加しましたが、ビルドエラーが発生します...
The type or namespace 'App' does not exist in the current namespace
これは、2つのエラーが発生する場所の例です。
ドロイドプロジェクト:
namespace MyApp.Droid
{
[Activity (Label = "MyApp", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
global::Xamarin.Forms.Forms.Init (this, bundle);
LoadApplication (new MyApp.App ());
//Error on the above line at MyApp.App ()
}
}
}
iOSプロジェクト:
namespace MyApp.iOS
{
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init ();
LoadApplication (new MyApp.App ());
//Error on above line in MyApp.App ()
return base.FinishedLaunching (app, options);
}
}
}
このソリューションは作成されたばかりで、コーディングはまだ行われていません。これはVS2015の問題でしょうか?
これはまだ存在する問題です。これは7月の解決策ではなかったかもしれませんが、これは3/31/16の実用的な解決策です。
これは、XAMLファイルを開いてPCLプロジェクトでC#ファイルに切り替えた後にも発生することがあります。
Forms PCLプロジェクトを参照する必要があります。各プロジェクトを個別に作成しない限り、プロジェクトの作成時にデフォルトで参照されます。 MyApp.Droidプロジェクトを右クリック->参照の追加->ソリューション-> MyAppの確認(?!?!)
@silencedmessageの答えは私を助けました。
追加したいのですが、すべてのXamarinプロジェクトに最初からPCL参照さえないことに気づきました。考えられるすべてのターゲットに対して空白のXamarinForms XAMLプロジェクトテンプレートから始めましたが、この回答を読む前に、PCLへの参照を確認することすらしませんでした。
非常に長い話ですが、空白の公式テンプレートからでも、PCL参照がすべてのプロジェクトに追加されていることを確認する必要があります。奇妙なもの。