C# 应用程序在adb调试中运行良好,但在将apk部署到手机后崩溃

C# 应用程序在adb调试中运行良好,但在将apk部署到手机后崩溃,c#,android,xamarin.android,locationmanager,C#,Android,Xamarin.android,Locationmanager,我是xamarin的新手,所以我从教程中选取了BackgroundlocationDemo示例,并更改了一些内容。基本上是在位置更改时连接到api 在我的手机上使用vs usb调试可以很好地工作,但当我部署apk并在同一部手机上安装时,它崩溃了(不确定它何时获得位置或何时发布到api),没有错误,只有“应用程序已停止”消息 不知道如何调试,也不知道问题出在哪里,也不知道如何从手机崩溃中获取任何信息 我感谢您提前为我指出正确的方向。有人指示我使用Android设备日志(logcat),并从手机上运

我是xamarin的新手,所以我从教程中选取了BackgroundlocationDemo示例,并更改了一些内容。基本上是在位置更改时连接到api

在我的手机上使用vs usb调试可以很好地工作,但当我部署apk并在同一部手机上安装时,它崩溃了(不确定它何时获得位置或何时发布到api),没有错误,只有“应用程序已停止”消息

不知道如何调试,也不知道问题出在哪里,也不知道如何从手机崩溃中获取任何信息


我感谢您提前为我指出正确的方向。

有人指示我使用Android设备日志(logcat),并从手机上运行应用程序,而不是VS

因此,我得到了以下输出:

06-01 00:44:40.431 E/AndroidRuntime( 2986): FATAL EXCEPTION: main
06-01 00:44:40.431 E/AndroidRuntime( 2986): Process: Location.Droid, PID: 2986
06-01 00:44:40.431 E/AndroidRuntime( 2986): java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
06-01 00:44:40.431 E/AndroidRuntime( 2986): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
06-01 00:44:40.431 E/AndroidRuntime( 2986): Caused by: java.lang.reflect.InvocationTargetException
06-01 00:44:40.431 E/AndroidRuntime( 2986): at java.lang.reflect.Method.invoke(Native Method)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at java.lang.reflect.Method.invoke(Method.java:372)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
06-01 00:44:40.431 E/AndroidRuntime( 2986): ... 1 more
06-01 00:44:40.431 E/AndroidRuntime( 2986): Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: System.Net.WebException: Error: NameResolutionFailure
06-01 00:44:40.431 E/AndroidRuntime( 2986): at System.Net.WebClient.UploadDataInternal (System.Uri address, System.String method, System.Byte[] data, System.Net.WebRequest& request) [0x000a6] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at System.Net.WebClient.UploadString (System.Uri address, System.String method, System.String data) [0x00054] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at System.Net.WebClient.UploadString (System.String address, System.String data) [0x00019] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at (wrapper remoting-invoke-with-check) System.Net.WebClient:UploadString (string,string)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at Location.Droid.Services.LocationService.OnLocationChanged (Android.Locations.Location location) [0x00157] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at Android.Locations.ILocationListenerInvoker.n_OnLocationChanged_Landroid_location_Location_ (IntPtr jnienv, IntPtr native__this, IntPtr native_location) [0x00011] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at (wrapper dynamic-method) System.Object:cad3edbb-2ed8-4cac-ad94-e74d5e046d4e (intptr,intptr,intptr)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at md5227b9e8295fbee87e0da67869d6e828e.LocationService.n_onLocationChanged(Native Method)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at md5227b9e8295fbee87e0da67869d6e828e.LocationService.onLocationChanged(LocationService.java:68)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:281)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:210)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:226)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.os.Handler.dispatchMessage(Handler.java:102)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.os.Looper.loop(Looper.java:135)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.app.ActivityThread.main(ActivityThread.java:5343) 

因此,解决url似乎是一个问题。经过一段时间的研究,我发现我需要为这个应用程序授予互联网权限。

有人建议我使用Android设备日志(logcat),并从手机上运行这个应用程序,而不是VS

因此,我得到了以下输出:

06-01 00:44:40.431 E/AndroidRuntime( 2986): FATAL EXCEPTION: main
06-01 00:44:40.431 E/AndroidRuntime( 2986): Process: Location.Droid, PID: 2986
06-01 00:44:40.431 E/AndroidRuntime( 2986): java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
06-01 00:44:40.431 E/AndroidRuntime( 2986): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
06-01 00:44:40.431 E/AndroidRuntime( 2986): Caused by: java.lang.reflect.InvocationTargetException
06-01 00:44:40.431 E/AndroidRuntime( 2986): at java.lang.reflect.Method.invoke(Native Method)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at java.lang.reflect.Method.invoke(Method.java:372)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
06-01 00:44:40.431 E/AndroidRuntime( 2986): ... 1 more
06-01 00:44:40.431 E/AndroidRuntime( 2986): Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: System.Net.WebException: Error: NameResolutionFailure
06-01 00:44:40.431 E/AndroidRuntime( 2986): at System.Net.WebClient.UploadDataInternal (System.Uri address, System.String method, System.Byte[] data, System.Net.WebRequest& request) [0x000a6] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at System.Net.WebClient.UploadString (System.Uri address, System.String method, System.String data) [0x00054] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at System.Net.WebClient.UploadString (System.String address, System.String data) [0x00019] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at (wrapper remoting-invoke-with-check) System.Net.WebClient:UploadString (string,string)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at Location.Droid.Services.LocationService.OnLocationChanged (Android.Locations.Location location) [0x00157] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at Android.Locations.ILocationListenerInvoker.n_OnLocationChanged_Landroid_location_Location_ (IntPtr jnienv, IntPtr native__this, IntPtr native_location) [0x00011] in :0
06-01 00:44:40.431 E/AndroidRuntime( 2986): at (wrapper dynamic-method) System.Object:cad3edbb-2ed8-4cac-ad94-e74d5e046d4e (intptr,intptr,intptr)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at md5227b9e8295fbee87e0da67869d6e828e.LocationService.n_onLocationChanged(Native Method)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at md5227b9e8295fbee87e0da67869d6e828e.LocationService.onLocationChanged(LocationService.java:68)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:281)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:210)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:226)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.os.Handler.dispatchMessage(Handler.java:102)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.os.Looper.loop(Looper.java:135)
06-01 00:44:40.431 E/AndroidRuntime( 2986): at android.app.ActivityThread.main(ActivityThread.java:5343) 

因此,解决url似乎是一个问题。经过一段时间的研究,我发现我需要为这个应用程序授予互联网权限。

你是否为棉花糖添加了运行时定位权限?是的。。。我做到了,不需要任何特殊许可就可以发布http帖子吗?对吗?你知道吗,你可以在一个封闭的alpha/beta测试中将它上传到play store,这样除了你(和你允许的人)之外没有人能看到它,看它是否崩溃。如果是这样,点击发送错误报告,您将得到一个错误日志!它似乎要花25美元。调试错误有点贵。谢谢你是否为棉花糖添加了运行时定位权限?是的。。。我做到了,不需要任何特殊许可就可以发布http帖子吗?对吗?你知道吗,你可以在一个封闭的alpha/beta测试中将它上传到play store,这样除了你(和你允许的人)之外没有人能看到它,看它是否崩溃。如果是这样,点击发送错误报告,您将得到一个错误日志!它似乎要花25美元。调试错误有点贵。无论如何谢谢你