diff options
-rw-r--r-- | androidprefs/src/com/android/prefs/AndroidLocation.java | 36 | ||||
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/.classpath | 4 |
2 files changed, 25 insertions, 15 deletions
diff --git a/androidprefs/src/com/android/prefs/AndroidLocation.java b/androidprefs/src/com/android/prefs/AndroidLocation.java index cfd9f53..446c426 100644 --- a/androidprefs/src/com/android/prefs/AndroidLocation.java +++ b/androidprefs/src/com/android/prefs/AndroidLocation.java @@ -37,34 +37,44 @@ public final class AndroidLocation { super(string); } } - + private static String sPrefsLocation = null; - + /** * Returns the folder used to store android related files. * @return an OS specific path, terminated by a separator. - * @throws AndroidLocationException + * @throws AndroidLocationException */ public final static String getFolder() throws AndroidLocationException { if (sPrefsLocation == null) { String home = findValidPath("ANDROID_SDK_HOME", "user.home", "HOME"); - + // if the above failed, we throw an exception. if (home == null) { throw new AndroidLocationException( "Unable to get the home directory. Make sure the user.home property is set up"); } else { sPrefsLocation = home + File.separator + ".android" + File.separator; + } + } - // make sure the folder exists! - File f = new File(sPrefsLocation); - if (f.exists() == false) { - f.mkdir(); - } else if (f.isFile()) { - throw new AndroidLocationException(sPrefsLocation + - " is not a directory! This is required to run Android tools."); - } + // make sure the folder exists! + File f = new File(sPrefsLocation); + if (f.exists() == false) { + try { + f.mkdir(); + } catch (SecurityException e) { + AndroidLocationException e2 = new AndroidLocationException(String.format( + "Unable to create folder '%1$s'. " + + "This is the path of preference folder expected by the Android tools.", + sPrefsLocation)); + e2.initCause(e); + throw e2; } + } else if (f.isFile()) { + throw new AndroidLocationException(sPrefsLocation + + " is not a directory! " + + "This is the path of preference folder expected by the Android tools."); } return sPrefsLocation; @@ -92,7 +102,7 @@ public final class AndroidLocation { } } } - + return null; } } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/.classpath b/eclipse/plugins/com.android.ide.eclipse.adt/.classpath index 7474b70..5684195 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/.classpath +++ b/eclipse/plugins/com.android.ide.eclipse.adt/.classpath @@ -3,8 +3,8 @@ <classpathentry excluding="Makefile|resources/" kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> - <classpathentry kind="lib" path="jarutils.jar"/> - <classpathentry kind="lib" path="androidprefs.jar"/> + <classpathentry kind="lib" path="jarutils.jar" sourcepath="/JarUtils"/> + <classpathentry kind="lib" path="androidprefs.jar" sourcepath="/AndroidPrefs"/> <classpathentry kind="lib" path="sdkstats.jar" sourcepath="/SdkStatsService"/> <classpathentry kind="lib" path="kxml2-2.3.0.jar"/> <classpathentry kind="lib" path="layoutlib_api.jar"/> |