【发布时间】: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