其实还有一个问题没解决,也拖很久了。中途公司的项目太紧导致无法学习更新。
之前的问题是这样的:项目搭建成功了,App也成功发布到虚拟机。便尝试增加控件
Xaml 设计界面如下:
但是在虚拟机运行却这样,无法显示控件:
刚开始我还以为是模拟器的问题,然后切换回Google的模拟器(很卡)结果还是这样。还尝试过使用 Android x86的模拟器,然后报错了,错误大概如下:
Starting emulator for AVD 'AVD_for_Galaxy_Nexus_by_Google'
emulator: WARNING: Classic qemu does not support SMP. The hw.cpu.ncore option from your config file is ignored.
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status: Please disable Hyper-V before using the Android Emulator. Start a command prompt as Administrator, run 'bcdedit /set hypervisorlaunchtype off', reboot. cmd 管理员运行, bcdedit /set hypervisorlaunchtype off
然后我尝试了 以管理员身份运行 cmd 并输入命令:bcdedit /set hypervisorlaunchtype off。再次运行 模拟器发现并不是这么简单:
所以.....我就放弃了~
后来在机缘巧合之下,我发现了....
using Android.App;
using Android.Widget;
using Android.OS; namespace FirstAndroidTest
{
[Activity(Label = "FirstAndroidTest", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle); // Set our view from the "main" layout resource
// SetContentView (Resource.Layout.Main);
}
}
}
WTF!!!! SetContentView 怎么被注释了!!! 取消这行注释,立马用那个很卡的Android 模拟器运行,发现控件终于出来了!!原来是这样!!!!
至于为什么 用那个很卡的Android模拟器,是因为之前执行了命令
bcdedit /set hypervisorlaunchtype off
想当然 应该执行
bcdedit /set hypervisorlaunchtype on
应该就可以恢复了吧?答案是错的(如下图)
因为之前 执行 off的时候是需要重启计算机方能生效,而 执行on 也应该是需要重启计算机,但是重启计算机之后可以自动on吗?
所以实行的应该是(参考:Turning hyper-v on and off):
bcdedit /set hypervisorlaunchtype auto start
重启后 Windows 的安卓模拟器回来了,第一个项目终于结束!