${SegmentFile} Var libclasspath Var SDK Var User ${SegmentInit} ${ReadUserConfig} $0 SDK ;= User defined directory.. IfErrors +5 StrCmpS $0 "" +4 IfFileExists "$0\tools\bin\sdkmanager.bat" 0 +3 StrCpy $SDK `$0` Goto +6 IfFileExists "$EXEDIR\App\AndroidStudio\sdk\tools\bin\sdkmanager.bat" 0 +3 ;= In the App directory.. StrCpy $SDK "$EXEDIR\App\AndroidStudio\sdk" Goto +3 IfFileExists "$PortableAppsDirectory\CommonFiles\AndroidSDK\tools\bin\sdkmanager.bat" 0 +2 ;= Common files directory.. StrCpy $SDK "$PortableAppsDirectory\CommonFiles\AndroidSDK" IfFileExists $SDK +6 ClearErrors System::Call "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})i" ;= Grabs the current username.. StrCpy $User $0 IfFileExists "C:\Users\$User\AppData\Local\Android\sdk\tools\bin\sdkmanager.bat" +2 ;= Locally installed version.. StrCpy $SDK "C:\Users\$User\AppData\Local\Android\sdk" ${SetEnvironmentVariablesPath} PAL:SDK "$SDK" !macroend ${SegmentPre} ${ForEachFile} "$0" "$1" "$EXEDIR\App\android-studio\lib\*.jar" StrCpy $libclasspath "$libclasspath;lib\$1" ${NextFile} ${SetEnvironmentVariablesPath} PAL:libclasspath $libclasspath !macroend ${SegmentPostPrimary} ;= Because adb.exe will linger after exit if used. ${IfThen} ${ProcessExists} adb.exe ${|} ${TerminateProcess} adb.exe $0 ${|} !macroend