2011-03-23 94 views
10

這是對SDK manager does not find java問題的後續處理,但現在的問題是SDK/android.bat未找到SWT文件。Android SDK/Android.bat未找到SWT.jar文件


我運行Windows 7 X64的,我的文件位置如下:

Android SDK (zip version) - C:\android-sdk-windows 

SWT.jar (from the Zip) - C:\android-sdk-windows\tools\lib\x86 
          C:\android-sdk-windows\tools\lib\x86_64 

JDK 6 u24 x64    - C:\Program Files\Java\jdk1.6.0_24 

我的環境變量如下:

ANDROID_SWT = C:\android-sdk-windows\tools\lib\x86_64 

Path  = ;C:\Program Files\Java\jdk1.6.0_24\bin 

我我正試圖解決以下問題。

在執行Android SDK管理器時,黑色命令屏幕快速閃爍並消失,它不會啓動SDK,因此我無法下載任何平臺和附加組件。

請注意,我有這些文件已經從zip(廣告平臺和廣告項)

我追查元兇的android.bat文件,但似乎無法弄清楚。我已經爲SWT.jar文件設置了環境變量。
到目前爲止,我沒有以任何方式修改.bat文件。


以下是我的bat文件,錯誤位於底部附近。

@echo off 
rem Copyright (C) 2007 The Android Open Source Project 
rem 
rem Licensed under the Apache License, Version 2.0 (the "License"); 
rem you may not use this file except in compliance with the License. 
rem You may obtain a copy of the License at 
rem 
rem  http://www.apache.org/licenses/LICENSE-2.0 
rem 
rem Unless required by applicable law or agreed to in writing, software 
rem distributed under the License is distributed on an "AS IS" BASIS, 
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
rem See the License for the specific language governing permissions and 
rem limitations under the License. 

rem Useful links: 
rem Command-line reference: 
rem http://technet.microsoft.com/en-us/library/bb490890.aspx 

rem don't modify the caller's environment 
setlocal 

rem Set up prog to be the path of this script, including following symlinks, 
rem and set up progdir to be the fully-qualified pathname of its directory. 
set prog=%~f0 

rem Grab current directory before we change it 
set work_dir="%cd%" 

rem Change current directory and drive to where the script is, to avoid 
rem issues with directories containing whitespaces. 
cd /d %~dp0 


rem Check we have a valid Java.exe in the path. 
set java_exe= 
call lib\find_java.bat 
if not defined java_exe goto :EOF 

set jar_path=lib\sdkmanager.jar 

rem Set SWT.Jar path based on current architecture (x86 or x86_64) 
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a 

if "%1 %2"=="update sdk" goto StartUi 
if not "%1"=="" goto EndTempCopy 
:StartUi 
echo [INFO] Starting Android SDK and AVD Manager 

rem We're now going to create a temp dir to hold all the Jar files needed 
rem to run the android tool, copy them in the temp dir and finally execute 
rem from that path. We do this only when the launcher is run without 
rem arguments, to display the SDK Updater UI. This allows the updater to 
rem update the tools directory where the updater itself is located. 

set tmp_dir=%TEMP%\temp-android-tool 
xcopy %swt_path% %tmp_dir%\%swt_path% /I /E /C /G /R /Y /Q > nul 
copy /B /D /Y lib\androidprefs.jar %tmp_dir%\lib\  > nul 
copy /B /D /Y lib\org.eclipse.*  %tmp_dir%\lib\  > nul 
copy /B /D /Y lib\sdk*    %tmp_dir%\lib\  > nul 
copy /B /D /Y lib\common.jar   %tmp_dir%\lib\  > nul 
copy /B /D /Y lib\commons-compress* %tmp_dir%\lib\  > nul 

rem jar_path and swt_path are relative to PWD so we don't need to adjust them, just change dirs. 
set tools_dir=%cd% 
cd /d %tmp_dir% 

:EndTempCopy 

rem The global ANDROID_SWT always override the SWT.Jar path 
if defined ANDROID_SWT set swt_path=%ANDROID_SWT% 

if exist %swt_path% goto SetPath 
    echo ERROR: SWT folder '%swt_path%' does not exist. 
    echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform. 
    goto :EOF 

:SetPath 
rem Finally exec the java program and end here. 
call %java_exe% -Dcom.android.sdkmanager.toolsdir="%tools_dir%" -Dcom.android.sdkmanager.workdir=%work_dir% -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %* 

rem EOF 

這是我所得到的在通過命令提示符下執行批處理文件

C:\Users\MuniFC Portable11>C:\android-sdk-windows\tools\android.bat 
[INFO] Starting Android SDK and AVD Manager 
'xcopy' is not recognized as an internal or external command, operable program or batch file. 
No command line parameters provided, launching UI. 
See 'android --help' for operations from the command line. 
java.lang.NullPointerException 
    at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1205) 
    at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1184) 
    at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:385) 
    at com.android.sdkuilib.internal.repository.UpdaterData.initSdk(UpdaterData.java:238) 
    at com.android.sdkuilib.internal.repository.UpdaterData.<init>(UpdaterData.java:114) 
    at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.<init>(UpdaterWindowImpl.java:86) 
    at com.android.sdkuilib.repository.UpdaterWindow.<init>(UpdaterWindow.java:42) 
    at com.android.sdkmanager.Main.showMainWindow(Main.java:302) 
    at com.android.sdkmanager.Main.doAction(Main.java:281) 
    at com.android.sdkmanager.Main.run(Main.java:99) 
    at com.android.sdkmanager.Main.main(Main.java:88)` 

如果您對如何解決這一問題的任何想法,將是真棒!


UPDATE

通過將C:\windows\system32到我的路徑變量固定的xcopy問題,現在剩下的問題是SWT

命令提示符下運行 - Android.bat =

C:\Users\MuniFC Portable11>C:\android-sdk-windows\tools\android.bat 
[INFO] Starting Android SDK and AVD Manager 
No command line parameters provided, launching UI. 
See 'android --help' for operations from the command line. 
java.lang.NullPointerException 
     at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1205) 
     at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1184) 
     at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:385) 
     at com.android.sdkuilib.internal.repository.UpdaterData.initSdk(UpdaterData.java:238) 
     at com.android.sdkuilib.internal.repository.UpdaterData.<init>(UpdaterData.java:114) 
     at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.<init>(UpdaterWindowImpl.java:86) 
     at com.android.sdkuilib.repository.UpdaterWindow.<init>(UpdaterWindow.java:42) 
     at com.android.sdkmanager.Main.showMainWindow(Main.java:302) 
     at com.android.sdkmanager.Main.doAction(Main.java:281) 
     at com.android.sdkmanager.Main.run(Main.java:99) 
     at com.android.sdkmanager.Main.main(Main.java:88) 

C:\Users\MuniFC Portable11> 

回答

6

向PATH添加C:\windows\system32 xcopy錯誤消失後,但andro id.bat仍然存在swt.jar問題。刪除ANDROID_SWT變量爲我工作。

+0

非常感謝! :) – 2013-01-24 12:10:56

+0

謝謝,它也適用於我 – 2013-07-03 07:22:10

0

我曾經有同樣的問題,清除AVD文件夾(虛擬設備的配置)爲我工作...你應該嘗試一下。接縫問題是一個腐敗AVD,導致android.bat腳本解析時失敗。

3

我和你有同樣的問題。

最後,我通過重命名java和android sdk文件夾 而不使用空字符來清除此問題。

開始時, java安裝在D:\Program Files\Java和 安卓SDK安裝在D:\Program Files\Android

更改爲D:\JavaD:\Android分別 添加D:\Java\jdk1.7.0_04\binPATH, 它出現。

0

只需從您的Windows配置文件文件夾中刪除.android,它應該可以正常工作,因爲它對我很有用。

-1

行,所以我有這個問題,以及環境變量,ANDROID_SWT = libx86_64和移動同時在Android和Java到c:\我也沒在工作修復修改android.bat。

-1

我在windows 8.1 pro x64上運行Android Studio x64。隨着JDK 8 x64安裝。

我從Android Studio運行AVD的問題相同。下面是修復:

編輯系統環境變量...使用Windows搜索只需鍵入環境變量,它會打開編輯器。添加一個名爲ANDROID_SWT的新系統變量。如果它已經在那裏不需要添加另一個。將「變量值」設置爲swt.jar所在的路徑。我發現我通過:

C:.... \ Android的工作室\ SDK \工具\ LIB \ x86_64的\ SWT.JAR

我然後只需複製並粘貼該路徑到新的(或現有的) ANDROID_SWT系統變量值。然後我按下OK保存新的系統變量,它是新值(這是swt.jar的路徑),關閉並重新打開Android Studio並啓動AVD!

希望這有助於

-1

試圖打開'uiautomatorviewer.bat'時有同樣的問題。要修復它,我添加了ANDROID_SWT環境變量,並且還將android_sdk/tools文件夾添加到了PATH

直到我重新打開CMD,我纔看到變化。

-1

這解決了我的問題:上線27

find /i "x86" > NUL && set arch_ext=32 || set arch_ext=64 

刪除空白arch_ext=32||之間,像arch_ext=32||,重新打開CMD

文件夾\sdk\tools\lib開放find_java.bat,和所有工具將工作正常。