AOSP 4.2.2:无法在64位JVM上加载32位SWT库

时间:2014-08-02 09:15:39

标签: android eclipse swt android-source

构建后运行任何AOSP命令时遇到问题。在make源之后,我执行以下操作:

$ lunch full-eng
$ android

会发生什么:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
    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.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
    at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:330)
    at com.android.sdkmanager.Main.doAction(Main.java:318)
    at com.android.sdkmanager.Main.run(Main.java:118)
    at com.android.sdkmanager.Main.main(Main.java:101)

我似乎无法找到任何解决方案。我正在尝试构建AOSP 4.2.2_r1.2b。我之前已经构建了4.0.4而没有遇到这个问题。我正在运行这个版本的java:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

以下是android bash文件(/media/android/source/sdk/sdkmanager/app/etc/android)生成的命令:

java \
    -Xmx256M \
    -classpath /media/android/source/out/host/linux-x86/framework/sdkmanager.jar:/media/android/source/out/host/linux-x86/framework/swtmenubar.jar:/media/android/source/prebuilts/tools/linux-x86_64/swt/swt.jar \
    -Dcom.android.sdkmanager.toolsdir=/media/android/source/out/host/linux-x86/bin \
    com.android.sdkmanager.Main

请注意它仍然选择64位版本的SWT。

我知道this thread。但是,我尝试了解决方案1并且它不起作用。对于新的AOSP下载和构建,其他修补程序似乎根深蒂固......

非常感谢任何帮助/指导。

1 个答案:

答案 0 :(得分:0)

在Ubuntu 12.04 32位。我编辑命令:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

在Ubuntu 12.04上64位尝试:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/