当前位置: 首页 > 知识库问答 >
问题:

以32位Android SDK为用户

曹骞仕
2023-03-14

我想编译与SDK23.0.3的Android应用程序作为一个用户在CentOS。不幸的是,每次运行build-tools/23.0.3/aapt时,它都会返回

bash: build-tools/23.0.3/aapt: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
   ldd ../androidsdk/build-tools/23.0.3/aapt | \
     grep "i386" | awk '{print $3}' | \
     while read file
       do cp $file .
     done

我尝试的另一件事是获取并提取库(在Ubuntu上):

apt-get download libc6-i386 lib32stdc++6 lib32gcc1 
for file in *.deb
   do dpkg -x $file .
done

然后将LD_LIBARY_PATH设置为/home/test/lib://home/test/lib32,这也不起作用。

这可以由docker容器复制:runndocker run-it ubuntu bash,然后

apt update && apt install git unzip wget openjdk-8-jdk
cd home/
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip
cd tools/
yes | bin/sdkmanager --install "build-tools;23.0.3"
cd ..
bash: build-tools/23.0.3/aapt: No such file or directory
LD_LIBRARY_PATH=$(pwd)/libs libs/ld-linux.so.2 build-tools/23.0.3/aapt

正确执行aapt-command。不幸的是,这还不足以构建:

LD_LIBRARY_PATH=/nfs/user/do820mize/workspaces/dissworkspace/androidsdk/libs /nfs/user/do820mize/workspaces/dissworkspace/androidsdk/libs/ld-linux.so.2 ./gradlew --init-script ../init.gradle assemble

再次返回ELF-error,因为gradle-wrapper(以及Java等)是64位二进制文件。

共有1个答案

禄奇希
2023-03-14

glibc.i686可从基本存储库中获得:

$ yum whatprovides ld-linux.so.2

glibc-2.17-260.el7.i686 : The GNU libc libraries
Repo        : base
Matched from:
Provides    : ld-linux.so.2

如果不可能提供基本的依赖项,则该集群是无用的。当然,它需要安装在所有节点上;当glibc库的x86_64版本的版本号相同时,它破坏某些内容的可能性非常小。

 类似资料:
  • AndroidSDK Android SDK development environment Docker image Goals It contains the complete Android SDK enviroment, is able to perform all regular Android jobs. Solves the problem of "It works on my ma

  • 问题内容: 最近,我一直在对我公司的数据库产品的写入性能进行一些基准测试,并且发现仅切换到64位JVM可以使性能持续提高20-30%。 我不允许详细介绍我们的产品,但基本上它是面向列的数据库,已针对存储日志进行了优化。基准测试包括向其提供几GB的原始日志,并确定分析它们并将其作为结构化数据存储在DB中所需的时间。CPU和I / O的处理非常繁重,尽管很难说是什么比例。 有关设置的一些注意事项: 两

  • 问题内容: 我已经使用Java一段时间了,而我典型的设置新开发机的习惯要求从Oracle站点下载并安装最新的JDK。 今天这引发了一个不寻常的问题, 回想起来,我已经安装了之前的两个版本,并且很高兴将普通的工具链插入(Eclipse)。在我的日常编程中,我不会回想起曾经因为使用64位JRE(或为此目的而针对64位JRE)而不得不以其他方式进行更改或思考的事情。 根据我对64位和32位的理解- 确实

  • 问题内容: 我正在使用Launch4J启动我的Java应用程序,如果系统上存在x64 JRE,Launch4J似乎更喜欢它。 不幸的是我的应用程序无法在64位JVM上运行,因为我正在加载32位DLL,这是不可能的,并导致UnsatisfiedLinkError。 有什么方法可以强制/欺骗Launch4J仅使用32位JVM? 问题答案: 大约一年前,我遇到了这个确切的问题,使用Lauch4J封装了一

  • 问题内容: 是否有任何的组合和我可以为了建立ELF 32位二进制设定值? 问题答案: 和。 更多示例:体系结构: 作业系统: 有关完整列表(有效的“个体”值),请参考文件: 请注意,以上列表是一个不断增长的列表,不再删除不再受支持的平台(因为该列表用于go / build文件名匹配)。 对于当前列表,所有受支持的平台(GOOS / GOARCH组合),请使用以下命令: + (source)的有效组

  • 问题内容: 当我使用CDLL在32位python中调用32位dll时,它运行良好。但是不幸的是,在我的64位win7操作系统中,它只能安装64位python,调用时会变成:这不是有效的win32应用程序! 我可以在64位python中使用32位dll或exe吗?还是我必须安装32位python? 问题答案: 64位EXE无法加载32位DLL。(反之亦然:32位EXE无法加载64位DLL。)毕竟,它