【问题标题】:deployment failed without any error部署失败,没有任何错误
【发布时间】:2018-03-12 17:04:10
【问题描述】:

我创建了这个小应用程序。我构建了应用程序,单击图标时可以在模拟器上看到图标,页面打开时没有显示任何内容,然后再次关闭而没有显示任何错误。我取消了构建,然后它在输出窗口中显示以下消息:

    C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.0\zipalign.exe 4 "C:\VisualStudioMobileApplication\App3\App3\App3.Android\bin\Debug\com.companyname.app-Signed-Unaligned.apk" "bin\Debug\\com.companyname.app-Signed.apk" 
1>Done building project "App3.Android.csproj" -- FAILED.
1>Build FAILED.
1>
1>Deploy failed on VisualStudio_android-23_arm_phone
1>Process was cancelled
Build has been canceled.

它没有给出任何错误。我还在 MainActivity.cs 文件中的“OnCreate”方法上设置了断点。即使单击 App3 图标,代码也不会在该断点处中断。下面是我的 MainActivity.cs 代码

     using System;

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace App3.Droid
{
    [Activity(Label = "App3", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(bundle);

            global::Xamarin.Forms.Forms.Init(this, bundle);
            Xamarin.FormsMaps.Init(this, bundle);
            LoadApplication(new App());
        }
    }
}

MainPage.xaml 上的代码如下:

   <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:App3"
             xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
             x:Class="App3.MainPage">

    <StackLayout VerticalOptions="StartAndExpand" Padding="30">

        <maps:Map WidthRequest="960" HeightRequest="700" 

       x:Name="MyMap" 

       IsShowingUser="True" 

       MapType="Street" 

       />

    </StackLayout>

</ContentPage>

MainPage.xaml.cs 中的代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Maps;



namespace App3
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            MyMap.MoveToRegion(

                  MapSpan.FromCenterAndRadius(

                 new Position(37, -122), Distance.FromMiles(1)));
        }
    }
}

我使用的是 Visual Studio 2017 企业版 15.6。整个项目的构建总是成功的。

以下是我的 androidManifest.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.app" android:installLocation="auto">
    <uses-sdk android:targetSdkVersion="27" />
  <application android:label="app3.android">
    <meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="AIzaSyD1K1njDAN0"/>
  </application>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

</manifest>

当我点击 App3 时,我真的需要帮助来显示地图。任何帮助将不胜感激。

【问题讨论】:

  • 几件事。看起来您的应用程序没有构建,您可能需要转到工具 -> 选项 -> 项目和解决方案 -> 构建和运行并将“MSBuild 项目构建输出详细程度”更改为详细信息 - 它会为您提供更多信息您的代码可能有什么问题。此外,当我的代码无缘无故停止构建时,我倾向于从项目目录中删除“bin”和“obj”文件夹(关闭并重新打开 Visual Studio 也可能会有所帮助)。第二件事是,您不应该在此处发布您的 Google Maps Api 密钥
  • 需要使用adb查看设备/模拟器日志
  • 检查你的模拟器,你的模拟器可能有问题。打开您的 SDK 管理器并更新您的 SDK 所需的工具。如果这不起作用。尝试使用物理移动设备启动应用程序。如果它可以工作,那么模拟器/Android SDK 有问题

标签: xamarin xamarin.forms xamarin.android


【解决方案1】:

在 Windows 上,如果您的模拟器使用 Hyper-V,您可以试试这个:

  1. 启动 Hyper V 管理器
  2. 在“Hyper-V 管理器”下选择您的计算机
  3. 在虚拟机下,右键单击您所在的 VS 模拟器 尝试运行您的应用,请选择“设置”。
  4. 展开“处理器”节点,选择兼容性。
  5. 选中“迁移到物理 具有不同处理器版本的计算机”框,单击“确定”并尝试 再次运行您的应用。

希望对您有所帮助。干杯!

【讨论】:

  • 我没有使用 Hyper -V 作为我的模拟器
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多