“如何运行”;android.bat sdk“;在Windows7中

“如何运行”;android.bat sdk“;在Windows7中,android,windows-7,sdk,Android,Windows 7,Sdk,我已下载并安装了Android SDK,并尝试启动Android.bat SDK,但出现以下异常: C:\products\Android\tools>android.bat sdk Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3550 or swt-win32 in swt.library.path, java.library.path or the jar file

我已下载并安装了Android SDK,并尝试启动
Android.bat SDK
,但出现以下异常:

C:\products\Android\tools>android.bat sdk
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3550 or swt-win32 in swt.library.path,
        java.library.path or the jar file
        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
        at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
        at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:328)
        at com.android.sdkmanager.Main.doAction(Main.java:302)
        at com.android.sdkmanager.Main.run(Main.java:118)
        at com.android.sdkmanager.Main.main(Main.java:101)
C:\products\Android\tools>Android.bat sdk
线程“main”java.lang.UnsatifiedLinkError中出现异常:swt.library.path中没有swt-win32-3550或swt-win32,
java.library.path或jar文件
位于org.eclipse.swt.internal.Library.loadLibrary(未知源)
位于org.eclipse.swt.internal.Library.loadLibrary(未知源)
在org.eclipse.swt.internal.C.(未知来源)
位于org.eclipse.swt.widgets.Display(未知源)
位于com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:328)
位于com.android.sdkmanager.Main.doAction(Main.java:302)
位于com.android.sdkmanager.Main.run(Main.java:118)
位于com.android.sdkmanager.Main.Main(Main.java:101)

我已经寻找解决办法很长时间了,但我无法让它发挥作用。有什么我必须先设置的吗?

我认为jar文件没有放在正确的位置

SWT由两个“部分”组成——仅与平台无关的java部分 和一个平台依赖的片段。是否添加了依赖于平台的 也是碎片吗?
所以您需要

org.eclipse.swt_VERSION.jar

org.eclipse.swt_WINDOWSYSTEM_PLATFORM_VERSION.jar
有关设置类的信息,请参阅此链接


以防万一,这仍然困扰着任何人:我也有同样的问题。我最后做的是:

  • 搜索swt.jar文件(在Android SDK目录中,查看tools\lib\x86或tools\lib\x86\u 64)
  • 使用jar将其解压缩:

    mkdir tmp

    cd-tmp

    jarxf\tools\lib\x86\swt.jar

  • 将DLL复制到
    tools
    文件夹中

    copy tmp\*.dll\tools


  • 之后,我就可以运行SDK管理器了。

    当我试图从eclipse中加载SDK管理器时,eclipse控制台中显示了相同的消息。要修复它,您只需以管理员身份运行eclipse,它应该可以正常工作

    这对我来说很有用: 在android.bat文件中添加以下内容:

     -Dswt.library.path = {swt.jar folder path} 
    
    在此短语之前:

    com.android.manager.Main
    

    运行android.bat

    将路径更改为swt.jar

  • 编辑“[您的sdk\u路径]\tools\android.bat”文件
  • 查找单词“%Swt\u path%\Swt.jar”
  • 找到Eclipse插件文件夹路径
  • 用[eclipse\plugins\swt.jar]替换路径
  • 范例

    • 在类路径“%jar\u path%;%swt\u path%\swt.jar”之前
    • classpath“%jar\u path%;C:\eclipse\plugins\org.eclipse.swt.win32.win32.x86\u 3.102.1.v20130827-2048.jar”之后

    我希望这将有助于解决问题。

    这是一个相当古老的问题,但我在2015年遇到了与今天相同的问题。 此外,我预计答案可能不起作用,但让我无需以管理员的身份运行,特别是“Mehdi golnari”答案

    根据Mehdi的回答,我们需要添加与他添加的参数相同的参数,但需要更新以使用新的SDK工具(或android SDK)。我的版本是24.3.3版SDK,因此
    com.android.manager.Main
    将不再适用于我,但我们需要它是
    com.android.sdkmanager.Main
    。 我们还可以使用之前在同一bat中设置的变量:
    %swt\u path%

    因此,几乎在
    android.bat
    文件的末尾添加以下内容:

    "-Dswt.library.path=%swt_path%"
    
    生成的调用代码应该是一个单行,如下所示:

    call "%java_exe% %REMOTE_DEBUG%" "-Dcom.android.sdkmanager.toolsdir=%tools_dir%" "-Dcom.android.sdkmanager.workdir=%work_dir%" -classpath "%jar_path%;%swt_path%\swt.jar" "-Dswt.library.path=%swt_path%" com.android.sdkmanager.Main %*
    

    这将有助于运行
    android.bat
    SDK Manager.exe
    ,和
    AVD Manager.exe
    ,而无需按管理员要求运行。

    谢谢。。你救了我的命,我尝试了谷歌的很多选择,但最终你的解决方案奏效了。非常感谢你。