1. 程式人生 > >安裝android studio之後無法直接開啟SDK manager

安裝android studio之後無法直接開啟SDK manager

之前安裝的android studio之後,SDK Manager和AVD Manager兩個執行程式雙擊都打不開頁面了,之前都是正常的,所以java環境變數的問題是不存在的。

SDK Manager本質上是執行tools目錄下面的android命令,執行 tools/android 命令發現提示 The "android" command is deprecated.,百度了一下,果然發現Google將原來的SDK Mananger棄用了,官方建議的開啟方式是,在Android Studio中開啟tools>>SDK manager,見下圖:

不過這樣使用比較麻煩,所以查了資料,發現只要修改android sdk資料夾下的tools裡面的android.bat檔案內容就可以恢復成之前的形式。

首先備份下現有android.bat檔案

然後替換成如下的內容:

  1. @echo off
  2. rem Copyright (C) 2007 The Android Open Source Project
  3. rem
  4. rem Licensed under the Apache License, Version 2.0 (the "License");
  5. rem you may not use this file except in compliance with the License.
  6. rem You may obtain a copy of the License at
  7. rem
  8. rem      http://www.apache.org/licenses/LICENSE-2.0
  9. rem
  10. rem Unless required by applicable law or agreed to in writing, software
  11. rem distributed under the License is distributed on an "AS IS" BASIS,
  12. rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. rem See the License for the specific language governing permissions and
  14. rem limitations under the License.
  15. rem Useful links:
  16. rem Command-line reference:
  17. rem   http://technet.microsoft.com/en-us/library/bb490890.aspx
  18. rem don't modify the caller's environment
  19. setlocal enableextensions
  20. rem Set up prog to be the path of this script, including following symlinks,
  21. rem and set up progdir to be the fully-qualified pathname of its directory.
  22. set prog=%~f0
  23. rem Grab current directory before we change it
  24. set work_dir=%cd%
  25. rem Change current directory and drive to where the script is, to avoid
  26. rem issues with directories containing whitespaces.
  27. cd /d %~dp0
  28. rem Check we have a valid Java.exe in the path.
  29. set java_exe=
  30. call lib\find_java.bat
  31. if not defined java_exe goto :EOF
  32. set jar_path=lib\sdkmanager.jar;lib\swtmenubar.jar
  33. rem Set SWT.Jar path based on current architecture (x86 or x86_64)
  34. for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery-26.0.0-dev.jar') do set swt_path=lib\%%a
  35. :MkTempCopy
  36.     rem Copy android.bat and its required libs to a temp dir.
  37.     rem This avoids locking the tool dir in case the user is trying to update it.
  38.     set tmp_dir=%TEMP%\temp-android-tool
  39.     xcopy "%swt_path%" "%tmp_dir%\%swt_path%" /I /E /C /G /R /Y /Q > nul
  40.     copy /B /D /Y lib\common.jar         "%tmp_dir%\lib\"          > nul
  41.     copy /B /D /Y lib\commons-codec*     "%tmp_dir%\lib\"          > nul
  42.     copy /B /D /Y lib\commons-compress*  "%tmp_dir%\lib\"          > nul
  43.     copy /B /D /Y lib\commons-logging*   "%tmp_dir%\lib\"          > nul
  44.     copy /B /D /Y lib\dvlib.jar          "%tmp_dir%\lib\"          > nul
  45.     copy /B /D /Y lib\gson*              "%tmp_dir%\lib\"          > nul
  46.     copy /B /D /Y lib\guava*             "%tmp_dir%\lib\"          > nul
  47.     copy /B /D /Y lib\httpclient*        "%tmp_dir%\lib\"          > nul
  48.     copy /B /D /Y lib\httpcore*          "%tmp_dir%\lib\"          > nul
  49.     copy /B /D /Y lib\httpmime*          "%tmp_dir%\lib\"          > nul
  50.     copy /B /D /Y lib\layoutlib-api.jar  "%tmp_dir%\lib\"          > nul
  51.     copy /B /D /Y lib\org-eclipse-*      "%tmp_dir%\lib\"          > nul
  52.     copy /B /D /Y lib\sdk*               "%tmp_dir%\lib\"          > nul
  53.     copy /B /D /Y lib\swtmenubar.jar     "%tmp_dir%\lib\"          > nul
  54.     rem jar_path and swt_path are relative to PWD so we don't need to adjust them, just change dirs.
  55.     set tools_dir=%cd%
  56.     cd /d "%tmp_dir%"
  57. :EndTempCopy
  58. rem The global ANDROID_SWT always override the SWT.Jar path
  59. if defined ANDROID_SWT set swt_path=%ANDROID_SWT%
  60. if exist "%swt_path%" goto SetPath
  61.     echo ERROR: SWT folder '%swt_path%' does not exist.
  62.     echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
  63.     goto :EOF
  64. :SetPath
  65. rem Finally exec the java program and end here.
  66. REM set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  67. call "%java_exe% %REMOTE_DEBUG%" "-Dcom.android.sdkmanager.toolsdir=%tools_dir%" "-Dcom.android.sdkmanager.workdir=%work_dir%" -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*
  68. rem EOF

儲存之後,雙擊android sdk檔案下的sdk manager就可以開啟頁面了: