【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
2023-09-27 14:29:11 时间
一、报错信息
下载 7zip 源码 , 下载页面 https://sourceforge.net/projects/p7zip/files/ ,
解压源码 , 进入 D:\develop\7zip\p7zip_16.02\CPP\ANDROID\7zr\jni 目录 , 使用 ndk-build 编译 7z 工具 , 报如下错误 ;
[armeabi-v7a] Compile++ thumb: 7zr <= XzCrc64Reg.cpp
[armeabi-v7a] Compile++ thumb: 7zr <= ErrorMsg.cpp
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:18:10: error: case value evaluates
to -2147467263, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
^
../../..\Common/MyWindows.h:83:19: note: expanded from macro 'E_NOTIMPL'
#define E_NOTIMPL ((HRESULT)0x80004001L)
^
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:19:10: error: case value evaluates
to -2147467262, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
^
../../..\Common/MyWindows.h:84:23: note: expanded from macro 'E_NOINTERFACE'
#define E_NOINTERFACE ((HRESULT)0x80004002L)
^
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:20:10: error: case value evaluates
to -2147467260, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case E_ABORT : txt = "E_ABORT"; break ;
^
../../..\Common/MyWindows.h:85:17: note: expanded from macro 'E_ABORT'
#define E_ABORT ((HRESULT)0x80004004L)
^
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:21:10: error: case value evaluates
to -2147467259, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case E_FAIL : txt = "E_FAIL"; break ;
^
../../..\Common/MyWindows.h:86:16: note: expanded from macro 'E_FAIL'
#define E_FAIL ((HRESULT)0x80004005L)
^
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:22:10: error: case value evaluates
to -2147287039, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
^
../../..\Common/MyWindows.h:87:31: note: expanded from macro 'STG_E_INVALIDFUNCTION'
#define STG_E_INVALIDFUNCTION ((HRESULT)0x80030001L)
^
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:23:10: error: case value evaluates
to -2147024882, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
^
../../..\Common/MyWindows.h:88:23: note: expanded from macro 'E_OUTOFMEMORY'
#define E_OUTOFMEMORY ((HRESULT)0x8007000EL)
^
D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates
to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
^
../../..\Common/MyWindows.h:89:22: note: expanded from macro 'E_INVALIDARG'
#define E_INVALIDARG ((HRESULT)0x80070057L)
^
7 errors generated.
make: *** [D:/001_Programs/001_Android/002_Sdk/Sdk/ndk-bundle/build//../build/core/build-binary.mk:478: D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/obj/local/armeabi-v7a/objs/7zr/__/__/__/__/CPP/Windows/ErrorMsg.o] Error 1
D:\develop\7zip\p7zip_16.02\CPP\ANDROID\7zr\jni>ndk-build clean
二、解决方案
当前交叉编译该 p7zip 的时间是 2021 年 04 月 28 日 , 该代码最后更新时间是 2016 年 7 月 ,
代码比较老了 , 使用最新的 22.0.7026061 版本的 ndk , 就会报上述错误 ;
尝试使用旧版本的 16.1.4479499 ndk 进行编译 , 编译完成 ;
NDK 版本不匹配 ;
相关文章
- Android布局文件的载入过程分析:Activity.setContentView()源代码分析
- 路由器一键桥接Android实现
- 玩转系统|解决 Windows 11 Android子系统启动报错的问题,启用虚拟机平台教程
- Android 解决打包为apk文件时已设置签名,在OPPO手机上安装时却出现“未设置签名”的错误
- Android热补丁技术—dexposed原理简析(阿里Hao)
- Flutter 错误 Transform‘s input file does not exist: ... artifacts/engine/android-arm/flutter.jar.
- Flutter 使用Android Studio 创建第一个应用
- Eclipse中android工程C++文件中出现的莫名其妙的错误
- Xamarin Android设置界面提示类型错误
- Android 读写位于SD卡上的sqlite数据库文件错误问题
- android常见错误-Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
- 《Android游戏开发详解》一2.21 对象和基本类型的分组
- Android下如何计算要显示的字符串所占的宽度和高度
- Android项目导入时,出现的Could not write file 。。。。。。.classpath错误解决办法
- 阿里云OS和Android的关系(本文转载月光博客)
- android studio 突然出现Gradle project sync failed 错误
- android 开发解密时出现pad block corrupted 错误
- Monkey稳定性测试实战之Android常见错误类型及设置黑白名单使用方法
- 《OpenGL ES应用开发实践指南:Android卷》—— 2.6 OpenGL颜色模型
- 【毕业设计_课程设计】基于Android和Flask的最炫广场舞APP设计与实现(源码+论文)
- JAVA_Android APK反编译就这么简单 详解(附图)
- Flutter设置App的应用名字和应用logo图标的方法(android ios web)
- 解决在sdk manager中更新文件后出现This Android SDK requires Android Developer Toolkit version 23.1的错误
- android 错误解决方法 ---积累中
- Android上实现各种风格的隐藏菜单,比如左右滑动菜单、上下滑动显示隐藏菜单
- Android 命令行生成密钥与应用签名