gpt4 book ai didi

java - 在 Windows 上为 android 构建 iotivity 时出错

转载 作者:行者123 更新时间:2023-11-30 04:56:54 26 4
gpt4 key购买 nike

谁能帮我解决这个错误,我似乎无法确定问题所在。我也是使用 Scons 的新手。我需要通过这个来获取 .aar 和 .apk 文件。我正在将 Iotivity 用于一个项目,该项目允许用户在没有互联网的情况下在任何平台的设备之间共享传输图像。

命令提示符:

   C:\Users\derrick\Desktop\iotivity-2.0.1.1\iotivity-2.0.1.1>scons TARGET_OS=android
scons: Reading SConscript files ...
Processing using SCons version 3.1.1
Python 2.7.17 (v2.7.17:c2f86d86e6, Oct 19 2019, 21:01:17) [MSC v.1500 64 bit (AMD64)] on win32
NameError: name 'host_arch' is not defined:
File "C:\Users\derrick\Desktop\iotivity-2.0.1.1\iotivity-2.0.1.1\SConstruct", line 32:
SConscript('build_common/SConscript')
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 668:
return method(*args, **kw)
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 605:
return _SConscript(self.fs, *files, **subst_kw)
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 286:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "C:\Users\derrick\Desktop\iotivity-2.0.1.1\iotivity-2.0.1.1\build_common\SConscript", line 1025:
env.SConscript(target_os + '/SConscript')
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 605:
return _SConscript(self.fs, *files, **subst_kw)
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 286:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "C:\Users\derrick\Desktop\iotivity-2.0.1.1\iotivity-2.0.1.1\build_common\android\SConscript", line 19:
SConscript('#/extlibs/android/ndk/SConscript')
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 668:
return method(*args, **kw)
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 605:
return _SConscript(self.fs, *files, **subst_kw)
File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line 286:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "C:\Users\derrick\Desktop\iotivity-2.0.1.1\iotivity-2.0.1.1\extlibs\android\ndk\SConscript", line 24:
if host_arch in ['x86_64']:

最佳答案

坏了。我想我是几年前试图清理构建的那部分时破坏它的人。 iotivity 项目 CI 系统不在 Windows 主机上构建 android 二进制文件,它使用 linux 构建器,我猜没有开发人员这样做,所以没有检测到问题,正如错误消息所说,是 host_arch 未定义。这不是 iotivity 的基础,它只是设置 Android NDK 的依赖性工作;一旦你设置好了,后续构建就会跳过这些东西。以前的版本打开了 target_arch,这是不正确的 - 要获取的包取决于主机,而不是你正在构建的内容。我认为 Android 项目已经停止支持 32 位 bundle ,所以最简单的前进方式是删除测试(除非出于某种原因你有 32 位 Windows)。也就是说,从第 23 行开始更改此 block :

else:
if host_arch in ['x86_64']:
ndk_url = ndk_url_base + '-windows-x86_64.exe'
else:
ndk_url = ndk_url_base + '-windows-x86.exe'
ndk_bundle = 'android-ndk-' + NDK_VER + '.exe'

更简单的形式:

else:
ndk_url = ndk_url_base + '-windows-x86_64.exe'
ndk_bundle = 'android-ndk-' + NDK_VER + '.exe'

(如果不清楚,那意味着在回溯的最后一行编辑文件,C:\Users\derrick\Desktop\iotivity-2.0.1.1\iotivity-2.0.1.1\extlibs\android\ndk\SConscript)

关于java - 在 Windows 上为 android 构建 iotivity 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58966996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com