Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AVD emulator killed - Mac - nothing works - [solved] - 2021

I've spent whole day trying all methods found in multiple questions here on stackoverflow and dozens of google results (short summary):

  • Restart computer
  • Delete and recreate AVD
  • Change AVDs Graphic to Software (both in the AVD manager and directly in file)
  • Reinstall Emulator in SDK manager (all possible ways - update, delete and reinstall, reinstall on demand when starting AVD)
  • Reinstall HAXM
  • Reinstall Android studio
  • Check all Android versions in SDK manager
  • Start AVD from command line (this method is important for this post)
  • probably something more
  • ... and this everything several times in different order and combinations

Then I've found this comment reply under (this) video on youtube:

I managed to fix the issue after looking for it for 5 hours. There is no error message when I tried to run from the android studio. However, running the emulator the terminal will print the error message and this will help a lot. Run from terminal: /Users/hendrysetiadi/Library/Android/sdk/emulator/emulator emulator -avd Pixel_4_API_29 My error message is like below: emulator: Android emulator version 30.5.0.0 (build_id 7145572) (CL:N/A) dyld: Library not loaded: /System/Library/Frameworks/IOUSBHost.framework/Versions/A/IOUSBHost Referenced from: /Users/hendrysetiadi/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64 Reason: image not found Abort trap: 6 I managed to get the IOUSBHost.framework from my friend laptop and then upload it to google drive (in zip format) I follow the steps in here https://apple.stackexchange.com/questions/300222/accidentally-deleted-a-system-framework-macos-screwed The steps are - restart mac and command+R to show recovery option, choose safari icon to launch safari in recovery mode - In safari, open the google drive link I have uploaded earlier, then download the zip file directly into /System/Library/Frameworks/ (it will automatically unzip) - restart the laptop. - Done

That was exactly the same error I got using command line method.

The problem is, that I do net have access to another computer running OSX - Mojave in my case. But I don't know if the os version is that important.

My question is: "Is anybody capable and willing to provide the file IOUSBHost.framework found in /System/Library/Frameworks/ from OSX (Mojave at best) and post the link here?" Preferably in zip, but I can manage this myself.

I will immediately test the method and if it will work I will host the file myself (to maintain availability and to free the poster`s resources) and create solution answer here.

Thank you

like image 495
Uli Avatar asked Mar 20 '21 14:03

Uli


3 Answers

EDIT:

After update to Android Emulator 30.5.4.0 the framework is no longer required. Google has probably fixed that.


After further research and thanks to comments here, and especially answer by Don Pato it became clear that after Android emulator update to version 30.5.3.0 it starts to show given error on OSX Mojave and older because of missing framework.

There are 2 obvious solutions for this situation + this one:

  1. Update OS
  2. Downgrade Android emulator (along with Android studio itself)
  3. This solution

The first solution can be unable due to some other software compatibility and the second can be impractical because older emulator is able to run Android API 29 max.

Thanks to original author (Hendry Setiadi) of mentioned Youtube comment who provided required file (he is the hero here), the problem can be solved avoiding 2 previous options. I had to change a little his steps, because I could not directly download the file in Safari in recovery mode due to "disk out of space" error.

The solution process:

  1. Download missing framework from following link: https://www.dropbox.com/s/i9bzzw5sr0s7e81/IOUSBHost.framework.zip?dl=0
  2. Unizp
  3. Now it is necessary co get the file IOUSBHost.framework to /System/Library/Frameworks which is system read-only dir. Who knows how to do it, can stop reading and just do it. I did it by following steps - some of them might be unnecessary.
  4. Restart to recovery with Cmd+R and in Utilities start terminal to disable System Integrity Protection with csrutil disable
  5. Reboot to system and mount system writable by putting in terminal sudo mount -uw /
  6. Now you can copy the file - I did it in Finder (mac user password was required)
  7. Don't forget to turn SIP on again in recovery by csrutil enable

Start your AVD!

like image 125
Uli Avatar answered Oct 13 '22 18:10

Uli


Google is working on this bug. The next version of the emulator will not have the dependency on that Framework. There is a beta of 36 available here:

https://issuetracker.google.com/issues/183218284

like image 3
Jeff Mikels Avatar answered Oct 13 '22 18:10

Jeff Mikels


I am getting the same error as you. Nothing from the proposed solution worked. I've tried out all that you did. And so far, it seems that the only solution is to upgrade our Macs at least to Catalina... Or downgrade everything... which seems to be not the easiest way.

In macOS 10.15 Catalina, Apple has introduced a new framework to access USB devices in user mode, the IOUSBHost framework.

you can read more here:

  • https://tejusadiga.wordpress.com/2020/06/06/time-to-farewell-kernel-extensions-kext-on-macos/
  • https://developer.apple.com/documentation/iousbhost

hope this brings you some light too ;)

like image 2
Don Pato Avatar answered Oct 13 '22 19:10

Don Pato