2020年6月20日土曜日

2020年6月19日金曜日

Mac/Windows Visual Studio&Xamarin開発時に遭遇したエラー集

ちょっと、終日、Xamarin開発を行ってみました。
対応OSは、iOS/Android/Windowsです。

その中で発生したエラー集です。

■1 Andorid ファイルパスが長すぎたようです。

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー Failed to create JavaTypeInfo for class: Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/IAccessibilityStateChangeListenerImplementor due to MAX_PATH: System.IO.DirectoryNotFoundException: パス 'D:\dev\sample_gomi\20200514_XamarinFormsSimple\xamarin-forms-book-samples-master\Chapter18\MvvmClock\MvvmClock\MvvmClock.Droid\obj\Debug\90\android\src\mono\android\support\v4\view\accessibility\AccessibilityManagerCompat_AccessibilityStateChangeListenerImplementor.java' の一部が見つかりませんでした。
   場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   場所 System.IO.File.InternalDelete(String path, Boolean checkHost)
   場所 System.IO.File.Delete(String path)
   場所 Xamarin.Android.Tools.Files.CopyIfStreamChanged(Stream stream, String destination)
   場所 Xamarin.Android.Tasks.Generator.CreateJavaSources(TaskLoggingHelper log, IEnumerable`1 javaTypes, String outputPath, String applicationJavaClass, String androidSdkPlatform, Boolean useSharedRuntime, Boolean generateOnCreateOverrides, Boolean hasExportReference) MvvmClock.Droid


プロジェクトフォルダを移動して対応しました。


■2 UWP SQLiteのデータベースが作成できない。

エラーのパタン1
System.UnauthorizedAccessException
  HResult=0x80070005
  Message=Access to the path 'C:\Users' is denied.
  Source=System.IO.FileSystem
  スタック トレース:
   場所 System.IO.Win32FileSystem.CreateDirectory(String fullPath)
   場所 System.IO.Directory.CreateDirectory(String path)
   場所 AlertCallbacks.AlertCallbacksPage.DoSomeDataAccess() (D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello\Hello\Hello\Database\AlertCallbacksPage.xaml.cs):行 51
   場所 AlertCallbacks.AlertCallbacksPage.AlertDismissedCallback(Task`1 task) (D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello\Hello\Hello\Database\AlertCallbacksPage.xaml.cs):行 30
   場所 System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
   場所 System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj)
   場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

エラーのパタン2
SQLite.SQLiteException
  HResult=0x80131500
  Message=Could not open database file: C:\Users\k-abe\Documents\ormdemo.db3 (CannotOpen)
  Source=SQLite-net
  スタック トレース:
   場所 SQLite.SQLiteConnection..ctor(SQLiteConnectionString connectionString)
   場所 SQLite.SQLiteConnection..ctor(String databasePath, Boolean storeDateTimeAsTicks)
   場所 AlertCallbacks.AlertCallbacksPage.DoSomeDataAccess() (D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello\Hello\Hello\Database\AlertCallbacksPage.xaml.cs):行 49
   場所 AlertCallbacks.AlertCallbacksPage.AlertDismissedCallback(Task`1 task) (D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello\Hello\Hello\Database\AlertCallbacksPage.xaml.cs):行 30
   場所 System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
   場所 System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj)
   場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

⇒パスの設定が間違っていました。
.NET Standardなのだから、using Xamarin.Essentials;を使って対応しました。


■3 Android エラーメッセージの通り、実機に容量がなく配置が出来ませんでした。

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー ADB0060:  Deployment failed
Xamarin.AndroidTools.AndroidDeploymentException: InsufficientSpaceForPackage ---> Mono.AndroidTools.InsufficientSpaceException: There is not enough storage space on the device to store package: /data/local/tmp/com.companyname.hello-Signed.apk. Free up some space and try again.
   場所 Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName) 場所 E:\A\_work\548\s\External\androidtools\Mono.AndroidTools\Internal\AdbOutputParsing.cs:行 323
   場所 Mono.AndroidTools.AndroidDevice.<>c__DisplayClass95_0.<InstallPackage>b__0(Task`1 t) 場所 E:\A\_work\548\s\External\androidtools\Mono.AndroidTools\AndroidDevice.cs:行 753
   場所 System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
   場所 System.Threading.Tasks.Task.Execute()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 AndroidDeviceExtensions.<PushAndInstallPackage>d__11.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:行 187
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 AndroidDeviceExtensions.<PushAndInstallPackage>d__11.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:行 203
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   場所 Xamarin.AndroidTools.AndroidDeploySession.<InstallPackage>d__112.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 414
   --- 内部例外スタック トレースの終わり ---
   場所 Xamarin.AndroidTools.AndroidDeploySession.<InstallPackage>d__112.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 421
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   場所 Xamarin.AndroidTools.AndroidDeploySession.<RunAsync>d__106.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 217
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Xamarin.AndroidTools.AndroidDeploySession.<RunLoggedAsync>d__104.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 119 0

⇒残容量は500MBはあったのですが、ダメでした。空けて対応しました。


■4 Andorid 原因も対処方法も不明

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
警告 Mono.Cecil.Cil.SymbolsNotMatchingException: Symbols were found but are not matching the assembly
   場所 Mono.Cecil.ModuleDefinition.ReadSymbols(ISymbolReader reader, Boolean throwIfSymbolsAreNotMaching) 場所 /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/cecil/Mono.Cecil/ModuleDefinition.cs:行 1085
   場所 Mono.Cecil.ModuleReader.ReadSymbols(ModuleDefinition module, ReaderParameters parameters) 場所 /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/cecil/Mono.Cecil/AssemblyReader.cs:行 111
   場所 Mono.Cecil.ModuleReader.CreateModule(Image image, ReaderParameters parameters) 場所 /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/cecil/Mono.Cecil/AssemblyReader.cs:行 82
   場所 Mono.Cecil.ModuleDefinition.ReadModule(String fileName, ReaderParameters parameters) 場所 /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/cecil/Mono.Cecil/ModuleDefinition.cs:行 1118
   場所 Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.ReadAssembly(String file) 場所 /Users/runner/runners/2.165.0/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:行 149 MvvmClock.Droid

Visual StudioのNuGetでライブラリを更新して、クリーンビルドを行い対応しました。
原因と有効手段は不明のままです。


■5 UWP その他

.NET Standardを2.0から2.1に上げることを失敗しました。
どうも、2.1は各種ライブラリと相性が良くないらしい。

なので、2.0に戻して開発を実施しました。


■6 UWP httpsのWeb APIを呼び出すとこのエラーが発生する。

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Runtime.InteropServices.COMException: このエラー コードに関連付けられたテキストが見つかりませんでした。

この証明機関は、無効か正しくありません

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpHandlerToFilter.<SendAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.DiagnosticsHandler.<SendAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClientHandler.<SendAsync>d__111.MoveNext()
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpClientHandler.<SendAsync>d__111.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at AlertCallbacks.AlertCallbacksPage.<DoSomeWebAccess>d__6.MoveNext()
 
------------------------------------------------------------
英語のエラーメッセージです。

InnerException {System.Runtime.InteropServices.COMException (0x80072F0D): The text associated with this error code could not be found.

The certificate authority is invalid or incorrect

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpHandlerToFilter.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.DiagnosticsHandler.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClientHandler.d__111.MoveNext()} System.Exception {System.Runtime.InteropServices.COMException}

------------------------------------------------------------


https://stackoverrun.com/ja/q/12993698


⇒対応が失敗続き、、、、


⇒対応は、
if (client == null)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
var httpClientHandler = new HttpClientHandler();
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
client = new HttpClient(httpClientHandler);
}

とネットの情報を真似て実装したが、動作しなかった。正しい実装は、




if (client == null)
{
var httpClientHandler = new HttpClientHandler();
#if DEBUG
//証明書が無効でも正常を返す。
httpClientHandler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
#endif         
client = new HttpClient(httpClientHandler);
}


■7 UWP セキュリティの対応プロトコルが含まれていない。

例外がスローされました: 'System.NotSupportedException' (System.Net.ServicePoint.dll の中)
System.NotSupportedException: The requested security protocol is not supported.
   at System.Net.ServicePointManager.ValidateSecurityProtocol(SecurityProtocolType value)
   at System.Net.ServicePointManager.set_SecurityProtocol(SecurityProtocolType value)
   at AlertCallbacks.AlertCallbacksPage.<DoSomeWebAccess>d__6.MoveNext()


問題のコード
if (client == null)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
var httpClientHandler = new HttpClientHandler();
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
client = new HttpClient(httpClientHandler);
}


対応コード
//https://support.microsoft.com/ja-jp/help/3069494/cannot-connect-to-a-server-by-using-the-servicepointmanager-or-sslstre
//↓このコードを書かないことが望ましい。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;


別の問題の調査でこれをいじったことが原因だった。


■8 Android ネットワークダウンのエラーが発生する。(Andoroidシミュレータ)

[0:] System.Net.Http.HttpRequestException: Network subsystem is down ---> System.Net.Sockets.SocketException: Network subsystem is down
  at System.Net.Http.ConnectHelper.ConnectAsync (System.String host, System.Int32 port, System.Threading.CancellationToken cancellationToken) [0x000c8] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:65
   --- End of inner exception stack trace ---
  at System.Net.Http.ConnectHelper.ConnectAsync (System.String host, System.Int32 port, System.Threading.CancellationToken cancellationToken) [0x00180] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:84
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813
  at System.Net.Http.HttpConnectionPool.CreateConnectionAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x000ea] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:371
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813
  at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync (System.Threading.Tasks.ValueTask`1[TResult] creationTask) [0x000a2] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:529
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813
  at System.Net.Http.HttpConnectionPool.SendWithRetryAsync (System.Net.Http.HttpRequestMessage request, System.Boolean doRequestAuth, System.Threading.CancellationToken cancellationToken) [0x0003f] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:284
  at System.Net.Http.RedirectHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x00070] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/RedirectHandler.cs:32
  at System.Net.Http.HttpClient.FinishSendAsyncBuffered (System.Threading.Tasks.Task`1[TResult] sendTask, System.Net.Http.HttpRequestMessage request, System.Threading.CancellationTokenSource cts, System.Boolean disposeCts) [0x0017e] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:506
  at AlertCallbacks.AlertCallbacksPage.DoSomeWebAccess () [0x000e5] in D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello\Hello\Hello\Database\AlertCallbacksPage.xaml.cs:79
05-15 11:09:53.973 D/EGL_emulation(19810): eglMakeCurrent: 0xdff05600: ver 3 0 (tinfo 0xc7cfd4c0)


⇒サーバ側が、localhostの証明書設定だった。

↓のサイトを参考に対応
https://qiita.com/ledsun/items/ca77c60aad424438cdd7

applicationHost.configを編集


■9 Android ネットワークダウンのエラーが発生する。(実機)


[0:] System.Net.Http.HttpRequestException: Connection refused ---> System.Net.Sockets.SocketException: Connection refused
  at System.Net.Http.ConnectHelper.ConnectAsync (System.String host, System.Int32 port, System.Threading.CancellationToken cancellationToken) [0x000c8] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:65
   --- End of inner exception stack trace ---
  at System.Net.Http.ConnectHelper.ConnectAsync (System.String host, System.Int32 port, System.Threading.CancellationToken cancellationToken) [0x00180] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:84
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813
  at System.Net.Http.HttpConnectionPool.CreateConnectionAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x000ea] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:371
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813
  at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync (System.Threading.Tasks.ValueTask`1[TResult] creationTask) [0x000a2] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:529
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813
  at System.Net.Http.HttpConnectionPool.SendWithRetryAsync (System.Net.Http.HttpRequestMessage request, System.Boolean doRequestAuth, System.Threading.CancellationToken cancellationToken) [0x0003f] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:284
  at System.Net.Http.RedirectHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x00070] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/RedirectHandler.cs:32
  at System.Net.Http.HttpClient.FinishSendAsyncBuffered (System.Threading.Tasks.Task`1[TResult] sendTask, System.Net.Http.HttpRequestMessage request, System.Threading.CancellationTokenSource cts, System.Boolean disposeCts) [0x0017e] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:506
  at AlertCallbacks.AlertCallbacksPage.DoSomeWebAccess () [0x000e5] in D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello\Hello\Hello\Database\AlertCallbacksPage.xaml.cs:79
05-15 20:23:45.182 I/mpanyname.hell(13708): Compiler allocated 4MB to compile void android.text.StaticLayout.generateForCJK(android.text.StaticLayout$Builder, boolean, boolean)
05-15 20:23:45.236 I/chatty  (13708): uid=10516(com.companyname.hello) Jit thread pool identical 1 line
05-15 20:23:45.281 I/mpanyname.hell(13708): Compiler allocated 4MB to compile void android.text.StaticLayout.generateForCJK(android.text.StaticLayout$Builder, boolean, boolean)

対応は、■8と同じ


■10 IIS Expressが外部からつながらない


https://qiita.com/ledsun/items/ca77c60aad424438cdd7


Windows ファイアーウォールの設定のみを実施

対応は、ポートを開けた
https://qiita.com/ledsun/items/ca77c60aad424438cdd7


■11 Android(実機)他のマシンから見るとHTTPエラー400が発生する

[0:] response:BadRequest
[0:] responseString:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>


また、他の端末(MAC)からのブラウザ表記でもBadRequsetエラーとなった


⇒WebアプリのVisual Studioを管理者権限で実行して対応


■12 WebApp IIS Expressの管理者権限実行


---------------------------
Microsoft Visual Studio
---------------------------
Web サーバー 'IIS Express' に接続できませんでした。
---------------------------
OK 
---------------------------

⇒httpsのIPアドレスが間違っている


対応は、
applicationHost.configを編集した際のIPアドレスが間違っていた。


■13 Andorid IDEのエラーチェックの問題



重大度レベル コード 説明 プロジェクト ファイル 抑制状態
メッセージ IDE0044 フィールドを読み取り専用にします Hello D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello.Mobile\Hello\Hello\Database\AlertCallbacksPage.xaml.cs 20 アクティブ

課題
IDE0044には、複数の精度の問題があります。

対応

https://stackoverflow.com/questions/50399422/suppress-a-warning-for-all-projects-in-visual-studio


■14 Andirid IDE


重大度レベル コード 説明 プロジェクト ファイル 抑制状態
メッセージ CA1031 Modify 'DoSomeWebAccess' to catch a more specific exception type, or rethrow the exception. Hello D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello.Mobile\Hello\Hello\Database\AlertCallbacksPage.xaml.cs 93 アクティブ


今の時点で対応残はない。



■15 ログの埋め込み Sirilog




■16 UWP ContinueWithメソッドが機能しない問題

課題
ContinueWithメソッドが機能しない問題
task.ContinueWith(AlertDismissedCallback);

⇒この処理で、AlertDismissedCallbackが呼び出されませんでした。。。なぜ?

実施したこと

    <PackageReference Include="Xamarin.Forms" Version="4.4.0.991265" />
    <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.1.9" />
    <PackageReference Include="Xamarin.Essentials" Version="1.3.1" />



    <PackageReference Include="Xamarin.Forms" Version="4.6.0.772" />
    <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.10" />
    <PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />

対応は、
「ソリューションのクリーン」を行いフルビルドを行ったが、なおらずに
UWPプロジェクトのプロパティ>アプリケーション>からターゲットバージョンを修正したらなおりました。

Windows 10 version 2004を追加。


■17 iOS 実機 シミュレーターは動作するが、実機でのデバック実行が何時までまっても始まらない。

対応は、
MacのVisual Studioを更新したら、デバックができるようになりました。

昨日、更新たばかりなのですが、■16のリリースに伴い、Mac側も対応が必要になったということですね。


■18 Andorid 実機で配置エラーが発生する。

エラーメッセージ
Microsoft Visual Studio
------------------------------------------------------------
配置エラーが発生しました。続行しますか?

続行しても、進めないということで、エラーメッセージの詳細を見る。

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー ADB0010:  Deployment failed
Mono.AndroidTools.InstallFailedException: Unexpected install output:
Exception occurred while executing:
android.os.ParcelableException: java.io.IOException: Requested internal only, but not enough space
at android.util.ExceptionUtils.wrap(ExceptionUtils.java:34)
at com.android.server.pm.PackageInstallerService.createSession(PackageInstallerService.java:501)
at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:2415)
at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:907)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:158)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:25981)
at android.os.Binder.shellCommand(Binder.java:642)
at android.os.Binder.onTransact(Binder.java:540)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:3329)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4782)
at android.os.Binder.execTransact(Binder.java:739)
Caused by: java.io.IOException: Requested internal only, but not enough space
at com.android.internal.content.PackageHelper.resolveInstallVolume(PackageHelper.java:531)
at com.android.internal.content.PackageHelper.resolveInstallVolume(PackageHelper.java:447)
at com.android.internal.content.PackageHelper.resolveInstallVolume(PackageHelper.java:462)
at com.android.server.pm.PackageInstallerService.createSessionInternal(PackageInstallerService.java:657)
at com.android.server.pm.PackageInstallerService.createSession(PackageInstallerService.java:499)
... 10 more

   場所 Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName) 場所 E:\A\_work\548\s\External\androidtools\Mono.AndroidTools\Internal\AdbOutputParsing.cs:行 345
   場所 Mono.AndroidTools.AndroidDevice.<>c__DisplayClass95_0.<InstallPackage>b__0(Task`1 t) 場所 E:\A\_work\548\s\External\androidtools\Mono.AndroidTools\AndroidDevice.cs:行 753
   場所 System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
   場所 System.Threading.Tasks.Task.Execute()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 AndroidDeviceExtensions.<PushAndInstallPackage>d__11.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:行 187
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 AndroidDeviceExtensions.<PushAndInstallPackage>d__11.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:行 203
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   場所 Xamarin.AndroidTools.AndroidDeploySession.<InstallPackage>d__112.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 433
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   場所 Xamarin.AndroidTools.AndroidDeploySession.<RunAsync>d__106.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 217
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Xamarin.AndroidTools.AndroidDeploySession.<RunLoggedAsync>d__104.MoveNext() 場所 E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 119 0

対応は、容量なしなので、本体のメモリを空けて対応


■19 iOS 実機 画面の一部が隠れてしまう


Xamarin OnPlatformを使用すると良い。

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/xaml/xaml-basics/essential-xaml-syntax?WT.mc_id=aiapril-xamblog-masoucou#platform-differences-with-onplatform

C#で対応

Device.OnPlatform(iOS: () => { Padding = new Thickness(0, 20, 0, 0); });

Xamlで対応

    <ContentPage.Padding>
        <OnPlatform x:TypeArguments="Thickness">
            <On Platform="iOS" Value="0, 20, 0, 0" />
            <On Platform="Android, UWP" Value="0, 0, 0, 0" /> <!-- 削除可能 -->
        </OnPlatform>
    </ContentPage.Padding>

補足

他のやり方で共有プロジェクト(SAP)作成して、

#if __IOS__
Padding = new Thickness(0, 20, 0, 0);
#endif

という手もある。


■20 処理 AcitonをEventに紐付けようとして失敗した。

どうもActionとEventは機構が違うのでダメらしい。(エビデンスなし)
う~ん。ひと手間加えれば、繋がりますが、コンパイラに手を入れたほうが良いテーマですね。

SizeChanged += new EventHandler(AlertCallbacksPage_SizeChanged);
SizeChanged += AlertCallbacksPage_SizeChanged;
//これが出来ない? ActionとEvent(event, delegate)は機構がそもそも違う??
//Action<object, EventArgs> onclick = (s, e) => { };
//SizeChanged += onclick;
SizeChanged += delegate { };
SizeChanged += delegate(object sender, EventArgs args) { };
SizeChanged += (s, e) => { };


■21 Android シミュレーターでRotate(画面の縦/横の自動回転)ががうまくいかない


シミュレーター側は、Ctrl+L/Rで、Rotateができます。

対応は、Android OSの設定で、「Auto-rotate screen」がOffになっているので、Onにする


■22 Android シミュレーターのRotateでSystem.ArgumentNullExceptionエラーが発生する

発生するエラー
**System.ArgumentNullException:** 'Value cannot be null.
Parameter name: enumerable'

System.ArgumentNullException
  Message=Value cannot be null.
Parameter name: enumerable

・・・全く原因が不明、とりあえず、実機で動作するかを検証する。⇒実機でも結果は同じ

共通項はAndroid 9.0ということ


https://stackoverflow.com/questions/58435211/i-am-getting-nullreferenceexception-when-devices-orientation-change-in-xamarin-f

MainActivity.csに↓を追加しました。

using Android.Content.Res;

        public override void OnConfigurationChanged(Configuration newConfig)
        {
            base.OnConfigurationChanged(newConfig);
        }

↓しかし、まだ、ここにパラメータ enumerable がない。

System.ArgumentNullException
  Message=Value cannot be null.
Parameter name: enumerable


- $exception {System.ArgumentNullException: Value cannot be null.
Parameter name: enumerable
  at Xamarin.Forms.Internals.EnumerableExtensions.IndexOf[T] (System.Collections.Generic.IEnumerable`1[T] enumerable, T item) [0x00003] in D:\a\1\s\Xamarin.Forms.Core\EnumerableExtensions.cs:79
  at Xamarin.Forms.Application.OnRequestedThemeChanged (Xamarin.Forms.AppThemeChangedEventArgs args) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Application.cs:172
  at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnConfigurationChanged (Android.Content.Res.Configuration newConfig) [0x0001e] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:90
  at Hello.Droid.MainActivity.OnConfigurationChanged (Android.Content.Res.Configuration newConfig) [0x00001] in D:\dev\sample_gomi\20200514_XamarinFormsSimple\Hello.Mobile\Hello\Hello.Android\MainActivity.cs:37
  at Android.App.Activity.n_OnConfigurationChanged_Landroid_content_res_Configuration_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_newConfig) [0x00011] in <4ccdb3137d974856b786e1aeebbfbab6>:0
  at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.12(intptr,intptr,intptr)} System.ArgumentNullException


newConfig = {{1.0 310mcc260mnc [en_US] ldltr sw411dp w683dp h387dp 420dpi nrml land finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 1794, 1080) mAppBounds=Rect(126, 0 - 1920, 1080) mWindowingMode=fullscreen mActivityType=standard} s.14}}

う~ん。

近いしい記事として、↓がある。Xamarin

https://github.com/xamarin/Xamarin.Forms/issues/10712


対応は、
Xamarin.Formsのバージョンが4.6.0.726
だと動作するが、
Xamarin.Forms 4.6.0.772
だとうまく動作しません。


ということで、Xamarin.Formsのバージョンを一つだけ下げました。

結果、MainActivity.csのvoid OnConfigurationCahngedのverfideは必要ありませんでした。


■23 Android ビルドエラー

ん?

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー failed to open directory: 謖・ョ壹&繧後◆繝輔ぃ繧、繝ォ縺瑚ヲ九▽縺九j縺セ縺帙s縲・(2). ModelessAndModal.Droid D:\dev\sample_gomi\20200514_XamarinFormsSimple\ModelessAndModal笘・ModelessAndModal\ModelessAndModal.Droid\obj\Debug\81\lp\12\jl\res

エラーが文字化けしているが、Directoryのオープンに失敗しているようです。


しかし、文字化けでどこのディレクトリに失敗しているかが不明

Resource/layout/Tabbar.axml
Resource/layout/Toolbar.axml

の2つがデザイナで開けないことを確認


対応策は、




■24 Android 警告エラー API 16がサポートされていない。


重大度レベル コード 説明 プロジェクト ファイル 抑制状態
警告 AndroidManifest.xml //uses-sdk/@android:minSdkVersion '15' is less than API-16, this configuration is not supported. ModelessAndModal.Droid D:\dev\sample_gomi\20200514_XamarinFormsSimple\ModelessAndModal★\ModelessAndModal\ModelessAndModal.Droid\Properties\AndroidManifest.xml



対応策は、
AndroidのターゲットをAndroid 9.0に変更

そして、AndroidManifest.xmlのsdkバージョンを変更

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28" />
<application android:label="ModelessAndModal.Droid"></application>
</manifest>



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" />
<application android:label="ModelessAndModal.Droid"></application>
</manifest>


SDKをインストールすれば動作するかと思うが対応せずに、SDKの対象バージョンを変更した。

■25 iOS 実機でデバック実行ができない。シミュレーターは動作します。

The project ModelessAndModal.iOS is not configured to be deployed. Please, enable it in the Solution Configuration Manager.

対策は、
ソリューション>構成マネージャで、iOSのプロジェクトの配置にチェックが付いていませんでした。

はて?どこで消えたのでしょうか?原因は不明ですが、対応しました。


■26 UWP 配置エラーが発生 マニフェストファイルが読み込めない。


重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー DEP1560: マニフェスト ファイル "D:\ModelessAndModal★\ModelessAndModal\ModelessAndModal.UWP\bin\x86\Debug\Core\AppxManifest.xml" を読み取ることができませんでした。再生成する必要がある可能性があります。[ソリューションのリビルド] コマンドを実行して、エラーの修正を試みてください。DirectoryNotFoundException - パス 'D:\ModelessAndModal★\ModelessAndModal\ModelessAndModal.UWP\bin\x86\Debug\Core\AppxManifest.xml' の一部が見つかりませんでした。 [0x80070003] ModelessAndModal.UWP


これは、パスの変更が影響している

対応は、
プロジェクトのクリーンを実行して、ビルド>デバック実行を行い対応した。


■27 Android シミュレーター モーダレスページからの戻りでエラーが発生。

System.ArgumentOutOfRangeException
  Message=Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

スペルミスで、モードレスの画面遷移にモーダルの画面スタックを戻す処理を入れてしまいました。

もう自分はアホなのかと思いました。

対処は、
await Navigation.PopModalAsync();

await Navigation.PopAsync();


■28 iOS 実機でアプリケーションをZoomへ戻そうと左上の「Goto Zoom」を押したら、エラーが発生した。

**System.ArgumentNullException:** 'Value cannot be null.
Parameter name: enumerable'

Androidのときに修理で、1つバージョンXamarin.Formsを使用して回避したので、その同じやり方で対応する。

対応は、
Xamarin.Forms 4.6.0.772

Xamarin.Forms 4.6.0.726

にすることで回避しました。


■29 Android 実機(タブレット)、開発者向けオプションが表示されない

対応は、
開発者向けオプションが表示されていなければ、 設定 > システム > タブレット情報 > ビルド番号 を連打して表示させる

うまくいくと、デバック実行の対象に「Teclast M30(Android 8.0 - API26)」が表示されます。


■30 Androrid 実機(タブレット)、M30 Android 8.0(API 26)にてエラーが発生する。

エラーの詳細

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー The $(TargetFrameworkVersion) for MasterDetailBehaviors.Droid (v8.1) is less than the minimum required $(TargetFrameworkVersion) for Xamarin.Forms (9.0). You need to increase the $(TargetFrameworkVersion) for MasterDetailBehaviors.Droid. MasterDetailBehaviors.Droid


原因は、ターゲットフレームワークの最低バージョンを9.0としているため、8.0ではビルドできない。

試みた対応は、
・Andorid SDKに、Android 8.0(API26)の「Android SDK Platfrom 26」がなかったので、追加した。
・XXX.Droidプロジェクトのプロパティのターゲットフレームワークを「Andorid 8.0(Oreo)」に変更した。

しかし、現象は改善されない。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="26" />
<application android:label="MasterDetailBehaviors.Droid"></application>
</manifest>

↓この対応でもNGでした。。。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="26" />
<application android:label="MasterDetailBehaviors.Droid"></application>
</manifest>




重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー Failed to create JavaTypeInfo for class: Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/IAccessibilityStateChangeListenerImplementor due to MAX_PATH: System.IO.DirectoryNotFoundException: パス 'D:\dev\sample_gomi\20200514_XamarinFormsSimple\MasterDetailBehaviors\MasterDetailBehaviors\MasterDetailBehaviors.Droid\obj\Debug\90\android\src\mono\android\support\v4\view\accessibility\AccessibilityManagerCompat_AccessibilityStateChangeListenerImplementor.java' の一部が見つかりませんでした。
   場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   場所 System.IO.File.InternalDelete(String path, Boolean checkHost)
   場所 System.IO.File.Delete(String path)
   場所 Xamarin.Android.Tools.Files.CopyIfStreamChanged(Stream stream, String destination)
   場所 Xamarin.Android.Tasks.Generator.CreateJavaSources(TaskLoggingHelper log, IEnumerable`1 javaTypes, String outputPath, String applicationJavaClass, String androidSdkPlatform, Boolean useSharedRuntime, Boolean generateOnCreateOverrides, Boolean hasExportReference) MasterDetailBehaviors.Droid



1)過去は
2018年8月以降、Google Play コンソールでは、新しいアプリが API レベル 26 (Android 8.0) 以降を対象とする必要があります。 既存のアプリは、2018年11月以降の API レベル26以降をターゲットにする必要があります。 詳細については、「 Google Play でのアプリのセキュリティとパフォーマンスの向上」を参照してください。

https://docs.microsoft.com/ja-jp/xamarin/android/app-fundamentals/android-api-levels?tabs=windows


2)では、現在はどうなの?

Xamarin.Forms でサポートされているプラットフォーム
https://docs.microsoft.com/ja-jp/xamarin/get-started/supported-platforms?tabs=windows

⇒Andorid 4.4 API19から対応しているように記載している。



試しにXamarin.Formsを
4.6.0.772

4.4.0.991864
へ変更して試してみる。

この試す仮設は、Xamarin.Formsによって、対応しているAndroidの最低バージョンが決まっているのではないかという疑念があるため。


試した結果、↓のエラーとなり、Xamarin.Fromsのバージョンによって、Androidの最低バージョンが変わりました。

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー The $(TargetFrameworkVersion) for MasterDetailBehaviors.Droid (v8.0) is less than the minimum required $(TargetFrameworkVersion) for Xamarin.Forms (8.1). You need to increase the $(TargetFrameworkVersion) for MasterDetailBehaviors.Droid. MasterDetailBehaviors.Droid


ということは、調査をはしらせる。


Xamarin.Forms       4.6.0.772 Android 9.0・・バグ有り版。
Xamarin.Forms       4.6.0.726 Android 9.0
Xamarin.Forms       4.5.0.725 Android 9.0
Xamarin.Forms 4.4.0.991864 Android 8.1
Xamarin.Forms 4.3.0.991250 Android 8.1
Xamarin.Forms 4.2.0.910310 Android 8.1・・試していないけど多分8.1
Xamarin.Forms 4.1.0.778454 Android 8.1・・試していないけど多分8.1
Xamarin.Forms 4.0.0.709238 Android 8.1
Xamarin.Forms 3.6.0.709228 Android 8.1が最低バージョン
Xamarin.Forms 3.5.0.274416 ビルドが通らない...※
Xamarin.Forms 3.4.0.1039999 Android 8.0(OREO)は動く
Xamarin.Forms 3.3.0.967583 Android 8.0(OREO)は動く
Xamarin.Forms 3.2.0.871581 Android 8.0(OREO)は動く
Xamarin.Forms 3.1.0.697729 Android 8.0(OREO)は動く

⇒結論、Xamarin.Formsのバージョンを変更することで、Android 8.0でも動作したが、、、、あまりよろしくない。



※エラーは2つ

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー CS0115 'MainActivity.OnCreate(Bundle)': オーバーライドする適切なメソッドが見つかりませんでした。 MasterDetailBehaviors.Droid D:\MasterDetailBehaviors\MasterDetailBehaviors\MasterDetailBehaviors.Droid\MainActivity.cs 15 アクティブ

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー CS0234 型または名前空間の名前 'Android' が名前空間 'Xamarin.Forms.Platform' に存在しません (アセンブリ参照があることを確認してください)。 MasterDetailBehaviors.Droid D:\MasterDetailBehaviors\MasterDetailBehaviors\MasterDetailBehaviors.Droid\MainActivity.cs 13 アクティブ


■31 ビルドエラーが発生する。しかし、エラー箇所がNuGetで取得したパッケージの内容となっている。



重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー MSB4064 "ValidateOnly" パラメーターは "XamlCTask" タスクではサポートされていません。タスク上にパラメーターが存在し、設定可能なパブリック インスタンス プロパティであることを確認してください。 MasterDetailBehaviors C:\Users\k-abe\.nuget\packages\xamarin.forms\4.6.0.772\buildTransitive\Xamarin.Forms.targets 120
エラー MSB4063 "XamlCTask" タスクを指定の入力パラメーターで初期化できませんでした。 MasterDetailBehaviors C:\Users\k-abe\.nuget\packages\xamarin.forms\4.6.0.772\buildTransitive\Xamarin.Forms.targets 114


同様のもd内で悩んでいる
https://github.com/xamarin/Xamarin.Forms/issues/8209


対応は、Xamarin.Formsを4.6.0.726に戻したら治りました。


■32

疲れた。。。

2020年6月18日木曜日

Windows/Mac Visual Studio開発>Macとペアリング 「"SSH キーで認証できませんでした。 最初に資格情報でログインしてください。"」エラーについて

あれ?このマックペアリングが出来ない。

エラー

対応法
https://docs.microsoft.com/ja-jp/xamarin/ios/get-started/installation/windows/connecting-to-mac/troubleshooting

抜粋

"SSH キーで認証できませんでした。 最初に資格情報でログインしてください。"

既知の原因:
  • SSH セキュリティの制限 – このメッセージは多くの場合、Mac の完全修飾パス $HOME/.ssh/authorized_keys にあるファイルまたはディレクトリの 1 つで [その他] メンバーまたは [グループ] メンバーに対して書き込みアクセス許可が有効になっていることを意味します。 一般的な修正方法:Mac 上のターミナル コマンド プロンプトで chmod og-w "$HOME" を実行します。 特定のファイルまたはディレクトリが問題を引き起こしている場合の詳細については、ターミナルで grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log" を実行し、デスクトップから sshd.log ファイルを開き、"Authentication refused: bad ownership or modes" を探します。

chmod og-w "$HOME"
を実施して対応しました。

2020年6月13日土曜日

Nintendo Switchのアナログコントローラー修理(7回目)左スティックがドリフトする問題の対応

左のスティックが勝手に動く状態になってます。You Tubeがおかしくなる。

早速、カバーを外して、

バッテリーを外して、

バッテリーが乗っていたカバーを外して、

アナログスティックを外しました。

あとは、外したときの逆順で組み立てます。
そして、ボタンチェックします。

アナログスティックのチェックもします。
おおっ!快適に動くようになりました。

ぬ?

あっ、ここのボタンが落ちてました。

直して、はい!完成です。
5分もあれば修理ができます。
部品も一つ500円もかかりません。