Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio AVD Manager Creating AVDs in root directory

I am using Android Studio with Ubuntu and it won't create AVDs. Nothing gets created in my ~/.android/avd directory. Instead things are getting created in my /root directory. Which I guess I wouldn't care about, except of course it can't run the emulator for these AVDs if the AVDs are in my root folder. I think it's because for the Android SDK manager to be accessed in Linux, Android Studio has to be run with sudo...but then it puts the AVDs in root instead of home...

I have a few pics outlining this problem very clearly, but stackoverflow won't let me even link to them without 10 rep, what a nuisance of a restriction.

EDIT: Here is the error I get in my terminal when I try to execute the android bash script located in /opt/android-studio/sdk/tools/. It's the same error whether or not Android Studio is open or not.

 ss108 tools$ bash android 
java.lang.NullPointerException
at java.io.File.<init>(File.java:277)
at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1516)
at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1492)
at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:346)
at com.android.sdklib.internal.avd.AvdManager.getInstance(AvdManager.java:369)
at com.android.sdklib.internal.repository.updater.UpdaterData.initSdk(UpdaterData.java:252)
at com.android.sdklib.internal.repository.updater.UpdaterData.<init>(UpdaterData.java:120)
at com.android.sdkuilib.internal.repository.SwtUpdaterData.<init>(SwtUpdaterData.java:61)
at com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.<init>(SdkUpdaterWindowImpl2.java:104)
at com.android.sdkuilib.repository.SdkUpdaterWindow.<init>(SdkUpdaterWindow.java:88)
at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:407)
at com.android.sdkmanager.Main.doAction(Main.java:390)
at com.android.sdkmanager.Main.run(Main.java:150)
at com.android.sdkmanager.Main.main(Main.java:116)
like image 607
ssaeed Avatar asked Sep 14 '14 02:09

ssaeed


People also ask

How AVDs are created?

To create an AVD starting with a copy: From the Virtual tab of the Device Manager, click Menu and select Duplicate. The Verify Configuration page appears. Click Change or Previous if you need to make changes on the System Image and Select Hardware pages.


1 Answers

The AVDs are created under /root because you are starting Android Studio with sudo. You need to configure the permissions so that this isn't required. The simplest solution that I have found is to install Android Studio and the Android SDK as my regular user. I install these into $HOME/bin so that I don't have to bother with permission issues at all. When everything is installed, my regular user account has execute permission for all the files I need.

Alternatively, you can use chmod (either manually or with find) to set the permissions on Android Studio and Android SDK files.

like image 51
Code-Apprentice Avatar answered Oct 18 '22 09:10

Code-Apprentice