将我的Android SDK工具今天更新到25.3.1后,模拟器不再运行了。
我可以打开AVD Manager。当我点击" Play"在列表中的一个模拟器上,我在Android Studio上看到了下面的栏
但是在进度条结束后,没有任何反应。
我在release notes中看到最新的更新给模拟器带来了变化,因此我想知道这是一个错误还是我错过了一些错误。
我正在使用Android Studio 2.3。
有什么想法吗?
答案 0 :(得分:24)
升级后我遇到了同样的问题。我无法弄清楚导致配置问题的原因,但我确实找到了解决方法。
首先,我尝试从命令行启动模拟器:
$ emulator @<name_avd_image>
emulator: ERROR: This AVD's configuration is missing a kernel file! Please ensure the file "kernel-ranchu" is in the same location as your system image.
emulator: ERROR: ANDROID_SDK_ROOT is defined (<android>/sdk) but cannot find kernel file in <android>/sdk/system-images/ sub directories
如果您使用emulator
标记运行-verbose
,则可以获得更多信息。我尝试重新安装系统映像(例如Android API 25 x86 w / Google API),Android Emulator 25.3.1,然后重新创建AVD但没有任何效果。
最后作为一种解决方法,我只是将SDK系统映像目录中的所有系统文件复制到AVD目录中:
示例:Pixel XL(Android API 25 x86 w / Google API)
消息来源:<android>
/ sdk / system-images / android-25 / google_apis / x86 /
目的地:〜/ .android / avd / Pixel_XL_API_25.avd /
之后,模拟器立即启动。它并不理想,但是这阻碍了我的开发,所以我不得不让模拟器重新启动并运行。我希望其他人能够弄清楚配置中出现了什么。
更新:找出配置问题!
我注意到我经常看到控制台错误&#34;您的模拟器已过期,请通过启动Android Studio进行更新:&#34;所以我决定检查:
$ which emulator
<$ANDROID_SDK_ROOT>/tools/emulator
在此thread:
的帮助下问题是有两个模拟器:一个在
$ANDROID_SDK_ROOT/tools
,另一个人$ANDROID_SDK_ROOT/emulator
。$ANDROID_SDK_ROOT/tools
中的那个 无法启动。之前放置$ANDROID_SDK_ROOT/emulator
$ANDROID_SDK_ROOT/tools
变量中的$PATH
,它应该修复 问题
注意:对于大多数Mac用户,您可以编辑~/.bash_profile
以更改这些设置,然后运行$source ~/.bash_profile
以加载更新。在我的特定情况下,我还有$ ANDROID_HOME的旧值,我必须清除它。
答案 1 :(得分:8)
您是否检查过** SDK工具中安装的Android模拟器?
转到设置 - &gt; SDK-工具
查看是否安装了Android。
我面临同样的问题。当我检查SDK工具时,我发现没有安装Android模拟器。
答案 2 :(得分:6)
libstdc++.so.6
是原因(正如@doruMarinau指出的那样); Android Studio 2.3将文件移至新文件夹your_sdk/emulator/lib64
。
如果使用Linux,请为其创建符号链接:
$ ln -sf /usr/lib/libstdc++.so.6 /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6
答案 3 :(得分:3)
解决方案是: 工具 - Android - Sdk经理 选项卡Sdk工具 安装模拟器25.3.1
答案 4 :(得分:2)
答案 5 :(得分:1)
转到Sdk/emulator/lib64/libstdc++
移动libstdc++.so.6
和libstdc++.so.6.0.18
到myfolder(我创建了这个)(或任何其他位置)作为备份并复制libstdc++.so.6
,libstdc++.so.6.0.21
来自usr/lib64
;再次尝试启动虚拟设备。
答案 6 :(得分:1)
这是一个libGL错误和libstdc ++问题。无法在模拟器中启动AVD。 这是一个知道错误,您可以通过一些简单的步骤轻松击败它。
我在Ubuntu 16.10 64bit上测试了这个解决方案
<强>解决方案:强>
$adb kill-server
$adb start-server
此后从Android工作室启动您的模拟器。如果这不起作用,那么请继续进行下一个解决方案。
替代解决方案:
首先,安装一些软件包和库:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
其次,调整一些链接:
$ cd YOURPATH/Android/Sdk/tools/lib64
$ mv libstdc++/ libstdc++.bak
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++
第三,重新启动您的AVD设备并进行测试。
答案 7 :(得分:0)
ANDROID_HOME, ANDROID_SDK_ROOT
个变量与Android Studio -> Settings -> Android SDK Location
不同。所以当我改变环境变量时,AVD就开始了!
(更改环境变量后,您应该重新启动Android Studio)
答案 8 :(得分:0)
唯一对我有用的解决方案是安装以下缺少的库:
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{
if (metadataObjects != nil && [metadataObjects count] > 0) {
AVMetadataMachineReadableCodeObject *metadataObj = [metadataObjects objectAtIndex:0];
if ([[metadataObj type] isEqualToString:AVMetadataObjectTypeQRCode]) {
[_statuslbl performSelectorOnMainThread:@selector(setText:) withObject:[metadataObj stringValue] waitUntilDone:NO];
self.tablenum=[NSString stringWithFormat:@"%@",[metadataObj stringValue]];
NSLog(@"tablenum-----%@",self.tablenum);
// NSString *ChkStr = [self.tablenum substringWithRange:NSMakeRange(9,7)];
// NSLog(@"check str:%@",ChkStr);
_tablevalue=self.tablenum;
[[NSUserDefaults standardUserDefaults] setValue:_tablevalue forKey:@"qrcode"];
[[NSUserDefaults standardUserDefaults] synchronize];
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertController *alertController=[UIAlertController alertControllerWithTitle:@"Qr Value Acquired!!" message:@"Your QR code has been scanned successfully!!." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
[[NSUserDefaults standardUserDefaults] setValue:self.tablenum forKey:@"qrcode1"];
[[NSUserDefaults standardUserDefaults] synchronize];
AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
[captureSession stopRunning];
captureSession = nil;
// [_videoPreviewLayer removeFromSuperlayer];
[self performSegueWithIdentifier:@"qrback" sender:self];
}];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
});
[self performSelectorOnMainThread:@selector(stopReading) withObject:nil waitUntilDone:NO];
[_scanqrb performSelectorOnMainThread:@selector(setTitle:) withObject:@"Start!" waitUntilDone:NO];
_isReading = NO;
}
}
}
有了它们,请使用以下内容更新sdk模拟器中的那个:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
再次启动你的模拟器,它会正常工作。
答案 9 :(得分:0)
在此版本中,Android Emulator将与SDK Tools分开发布。 所以只需在你的android studio中使用sdk工具安装android Emulator
答案 10 :(得分:0)
我的问题是ANDROID_SDK_HOME
指向d:\.android
而不是d:\
。找不到图像了。