有人能帮我解决这个错误吗,我似乎找不出问题。我在使用Scon方面也是新的。我需要通过这个来获得.aar和.apk文件。我正在为一个允许用户在没有互联网的任何平台的设备之间共享图像传输的项目使用物联网。
命令提示符:
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']:发布于 2019-11-22 23:15:20
它坏了。我想是我几年前试图清理那部分建筑的时候把它弄坏的。碘化项目CI系统没有在windows主机上构建android二进制文件,它使用的是linux构建器,我想也没有开发人员这样做,因此没有发现问题,正如错误消息所指出的,host_arch是未定义的。这不是iotivity的基础,它只是设置Android的依赖关系工作;一旦您设置了一个,这个东西就会被跳过用于后续的构建。上一个版本打开了target_arch,这是不对的--要获得的包取决于主机,而不是您要构建的内容。我认为Android项目已经不再支持32位捆绑包了,所以最简单的方法就是删除测试(除非出于某种原因,您有32位Windows)。也就是说,从第23行开始更改这个块:
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)中编辑文件)
https://stackoverflow.com/questions/58966996
复制相似问题