EntryPointNotFoundException在具有ArcGIS运行时的iOS上使用Xamarin表单的热重启
我在Visual Studio中为iOS创建了一个新的Xamarin Forms应用程序,并在AppDelegate.cs中添加了以下代码,引用了ArcGIS运行时EntryPointNotFoundException在具有ArcGIS运行时的iOS上使用Xamarin表单的热重启,ios,build,xamarin.ios,native,arcgis-runtime-net,Ios,Build,Xamarin.ios,Native,Arcgis Runtime Net,我在Visual Studio中为iOS创建了一个新的Xamarin Forms应用程序,并在AppDelegate.cs中添加了以下代码,引用了ArcGIS运行时 public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); LoadApplication(new App()); Esri.ArcGISRun
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.Initialize();
return base.FinishedLaunching(app, options);
}
这是我使用Initialize方法得到的错误
[0:] An error occurred: 'CoreRT_ArcGISRuntimeEnvironment_setInstallDirectory assembly:<unknown assembly> type:<unknown type> member:(null)'. Callstack: ' at (wrapper managed-to-native) RuntimeCoreNet.GeneratedWrappers.CoreArcGISRuntimeEnvironment.CoreRT_ArcGISRuntimeEnvironment_setInstallDirectory(byte[],intptr&)
at RuntimeCoreNet.GeneratedWrappers.CoreArcGISRuntimeEnvironment.SetInstallDirectory (System.String installPath) <0x138775060 + 0x00010> in <2a33546a5b934b588629d4e33895c554>:0
at Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.InitNative () <0x1387748c8 + 0x00004> in <2a33546a5b934b588629d4e33895c554>:0
at Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.Initialize () <0x138774538 + 0x00042> in <2a33546a5b934b588629d4e33895c554>:0
at App1.iOS.AppDelegate.FinishedLaunching (UIKit.UIApplication app, Foundation.NSDictionary options) [0x00013] in C:\Users\Chris\Documents\OnScene Xplorer\App1\App1.iOS\AppDelegate.cs:33
at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/UIKit/UIApplication.cs:86
at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0000e] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/UIKit/UIApplication.cs:65
at App1.iOS.Application.Main (System.String[] args) [0x00001] in C:\Users\Chris\Documents\OnScene Xplorer\App1\App1.iOS\Main.cs:17
at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/src/Xamarin.iOS/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395 '
我检查了iPhone上的部署文件夹。有一个来自Nuget的本地框架,它正在iPhone上实现。它似乎是本机调用的目标。在我的UWP应用程序中,2个dll(runtimecore.dll和runtimecorenet.dll)似乎是本机调用的目标
[0:] File: /private/var/containers/Bundle/Application/5A23D747-9648-4727-8677-FB4E036F0343/App6.iOS.app/Frameworks/ArcGIS-arm64.framework/_CodeSignature/CodeResources
[0:] File: /private/var/containers/Bundle/Application/5A23D747-9648-4727-8677-FB4E036F0343/App6.iOS.app/Frameworks/ArcGIS-arm64.framework/ArcGIS-arm64
[0:] File: /private/var/containers/Bundle/Application/5A23D747-9648-4727-8677-FB4E036F0343/App6.iOS.app/Frameworks/ArcGIS-arm64.framework/Info.plist
我在详细的构建输出中也看到了这一点:
3>MtouchExtraArgs = --framework:"${ProjectDir}/framework/ArcGIS-arm64.framework" --dynamic-symbol-mode=code
...
3>Task "AssignLinkMetadata" (TaskId:169)
3> Task Parameter:
3> Items=
3> C:\Users\Chris\.nuget\packages\esri.arcgisruntime.runtimes.ios\100.10.0\buildTransitive\Xamarin.iOS10\..\..\framework\ArcGIS-arm64.framework\ArcGIS-arm64
3> CopyToOutputDirectory=PreserveNewest
3> Link=framework\ArcGIS-arm64.framework\ArcGIS-arm64
3> C:\Users\Chris\.nuget\packages\esri.arcgisruntime.runtimes.ios\100.10.0\buildTransitive\Xamarin.iOS10\..\..\framework\ArcGIS-arm64.framework\Info.plist
3> CopyToOutputDirectory=PreserveNewest
3> Link=framework\ArcGIS-arm64.framework\Info.plist (TaskId:169)
3>Done executing task "AssignLinkMetadata". (TaskId:169)
我读到,iOS中的本机调用是静态的,必须在应用程序中构建/编译。你知道我如何检查这是否正确吗?你知道这个本地电话出了什么问题吗
任何帮助都将不胜感激。我非常想在没有Mac的情况下使用我的iPhone来做这个项目的开发。也不想在Mac电脑上发现同样的问题 我隐约记得有人提到,没有Mac的开发人员使用热重新加载/重新启动是有限的,因为它不能进行本机构建。这可能是我遇到的限制吗?
3>MtouchExtraArgs = --framework:"${ProjectDir}/framework/ArcGIS-arm64.framework" --dynamic-symbol-mode=code
...
3>Task "AssignLinkMetadata" (TaskId:169)
3> Task Parameter:
3> Items=
3> C:\Users\Chris\.nuget\packages\esri.arcgisruntime.runtimes.ios\100.10.0\buildTransitive\Xamarin.iOS10\..\..\framework\ArcGIS-arm64.framework\ArcGIS-arm64
3> CopyToOutputDirectory=PreserveNewest
3> Link=framework\ArcGIS-arm64.framework\ArcGIS-arm64
3> C:\Users\Chris\.nuget\packages\esri.arcgisruntime.runtimes.ios\100.10.0\buildTransitive\Xamarin.iOS10\..\..\framework\ArcGIS-arm64.framework\Info.plist
3> CopyToOutputDirectory=PreserveNewest
3> Link=framework\ArcGIS-arm64.framework\Info.plist (TaskId:169)
3>Done executing task "AssignLinkMetadata". (TaskId:169)