e.printStackTrace();
	public static final Obfuscator getInstance( ObfuscatorSetting setting, Project project, File libDir, LibraryManager libraryManager )	throws BuildException	{		if (setting.getClassName() != null) {			try {				if (setting.getClassPath() == null) {					Class obfuscatorClass = Class.forName( setting.getClassName() );					Obfuscator obfuscator = (Obfuscator) obfuscatorClass.newInstance();					obfuscator.init( project, libDir, libraryManager );					return obfuscator;				} else {					WrapperObfuscator obfuscator = new WrapperObfuscator( setting, project, libDir, libraryManager );					return obfuscator;				}			} catch (BuildException e) {				throw e;			} catch (Exception e) {				throw new BuildException( "Unable to load obfuscator [" + setting.getClassName() + "]: " + e.getMessage(), e );			}		}		if (setting.getName() != null) {			try {				String obfuscatorName = setting.getName().substring(0, 1).toUpperCase()							        + setting.getName().substring( 1 );				Class obfuscatorClass = Class.forName( 							"de.enough.polish.obfuscate." 							+ obfuscatorName + "Obfuscator");				Obfuscator obfuscator = (Obfuscator) obfuscatorClass.newInstance();				obfuscator.init( project, libDir, libraryManager );				return obfuscator;			} catch (ClassNotFoundException e) {				throw new BuildException( "Unable to load obfuscator [" + setting.getName() + "]: " + e.getMessage(), e );			} catch (InstantiationException e) {				throw new BuildException( "Unable to instantiate obfuscator [" + setting.getName() + "]: " + e.getMessage(), e );			} catch (IllegalAccessException e) {				throw new BuildException( "Unable to instantiate obfuscator [" + setting.getName() + "]: " + e.getMessage(), e );			}		}		// check for default obfuscators:		try {			Class.forName("proguard.ProGuard");			// okay, proguard found:			Obfuscator obfuscator = new ProGuardObfuscator();			obfuscator.init( project, libDir, libraryManager );			return obfuscator;		} catch (ClassNotFoundException e) {			// check for next obfuscator:		}		return null;	}