前提・実現したいこと
Xamarinでアプリ開発を目指しています。
DependencyServiceを使いアンドロイド、iOSからデータを返すコードを書いたのですが、
ビルドしたときにエラーになってしまいます。
DependencyService以外の実装でも同じではないかと思うのですが、ビルドエラーを解決したいです。
発生している問題・エラーメッセージ
Android MainActivity.csで アクティビティを起動可能とマークするには、次のように [Activity] 属性を追加して MainLauncher = true を指定します: [Activity (MainLauncher = true)] public class MyActivity : Activity というエラーがでます。これに従いMainActivity.csにクラスを実装するとページに何も表示されなくなってしまいます。 該当のソースコードにpublic class MyActivity : Activityを実装したものを載せさせていただきます。 ~~iOS [HotReload] (2020-05-05 15:17:24.6): INFO: (App4.iOS) HotReload: Initialized Agent. [HotReload] (2020-05-05 15:17:29.5): INFO: XAML ホット リロードが接続され、準備が整いました。 という表示以降が表示されません。 アンドロイドとほぼ同じ状態です。 ~~ iOS解決できました。ありがとうございました。
該当のソースコード
MyActivity.cs
1using System; 2 3using Android.App; 4using Android.Content.PM; 5using Android.Runtime; 6using Android.Views; 7using Android.Widget; 8using Android.OS; 9 10[assembly: Xamarin.Forms.Dependency(typeof(App4.Droid.PlarFormNameProvider))] 11namespace App4.Droid 12{ 13 [Activity(Label = "App4", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 14 15 public class MyActivity : Activity 16 { 17 18 } 19 20 public class PlarFormNameProvider : IPlatformNameProvider 21 { 22 public string GetName() 23 { 24 return "android"; 25 } 26 } 27 public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 28 { 29 protected override void OnCreate(Bundle savedInstanceState) 30 { 31 TabLayoutResource = Resource.Layout.Tabbar; 32 ToolbarResource = Resource.Layout.Toolbar; 33 34 base.OnCreate(savedInstanceState); 35 36 Xamarin.Essentials.Platform.Init(this, savedInstanceState); 37 global::Xamarin.Forms.Forms.Init(this, savedInstanceState); 38 LoadApplication(new App()); 39 } 40 public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) 41 { 42 Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); 43 44 base.OnRequestPermissionsResult(requestCode, permissions, grantResults); 45 } 46 } 47}
Main.cs
1using System; 2using System.Collections.Generic; 3using System.Linq; 4 5using Foundation; 6using UIKit; 7 8[assembly: Xamarin.Forms.Dependency(typeof(App4.iOS.PlarFormNameProvider))] 9namespace App4.iOS 10{ 11 12 public class PlarFormNameProvider : IPlatformNameProvider 13 { 14 public string GetName() 15 { 16 return "iOS"; 17 } 18 } 19 public class Application 20 { 21 // This is the main entry point of the application. 22 static void Main(string[] args) 23 { 24 // if you want to use a different Application Delegate class from "AppDelegate" 25 // you can specify it here. 26 UIApplication.Main(args, null, "AppDelegate"); 27 } 28 } 29} 30
試したこと
Andoroidがうまくググれずお手上状態です。
よろしくおねがいいたします。
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Community 2019
Version 16.5.4
.NET Framework version 4.8.03752
参考にさせていただいてるブログは
リンク内容
184ページになります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/05 09:53
2020/05/05 09:58
2020/05/05 10:05