- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想从使用 Android NDK 编译的 C++ 代码中使用 Renderscript。我构建了 NDK 附带的“HelloComputeNDK”示例。它在 Lollipop 设备上运行良好,但在 KitKat (4.4.4) 上崩溃,并在 adb logcat
上显示以下消息:
E/bcinfo (28302): Invalid API version: 21 is out of range ('11' - '19')
E/RenderScript(28302): Failed to translate bitcode from version: 21
E/rsC++ (28302): Internal error: Object id 0.
F/libc (28302): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 28317 (hellocomputendk)
I/DEBUG ( 363): Build fingerprint: 'htc/bm/htc_m8:4.4.4/KTU84P/401507.4:user/release-keys'
I/DEBUG ( 363): Revision: '0'
I/DEBUG ( 363): pid: 28302, tid: 28317, name: hellocomputendk >>> com.example.android.rs.hellocomputendk <<<
I/DEBUG ( 363): debuggerd: checkTellHTCSettings
I/DEBUG ( 363): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
我在 AndroidManifest.xml 中设置了 minSdkVersion="14"
,在 Application.mk 中设置了 APP_PLATFORM := android-19
,在 Application.mk 中设置了 TARGET_PLATFORM := android- Android.mk 中的 19
。我使用以下方法构建示例:
android update project --name HelloComputeNDK --path . --target android-19
ndk-build clean
ndk-build -d
ant -verbose debug install
我在其他地方看到过类似的崩溃问题,但这些情况下的问题是缺少 APP_PLATFORM
或 TARGET_PLATFORM
。这似乎不是这里的问题。
我相信我和这个人有同样的问题:https://stackoverflow.com/questions/27704847/ndk-sample-project-hellocomputendk-crashes , https://stackoverflow.com/questions/27705350/ndk-sample-project-hellocomputendk-problems .我认为这个问题被否决了,因为用户发布了两个似乎重复的问题。我有同样的问题,我认为这是一个合理的问题,所以我在这里问。
我使用的是 SDK 构建工具版本 21.1.2 和 NDK r10d。
我还尝试在 project.properties 中添加以下内容:
renderscript.target=19
renderscript.support.mode=true
这会产生错误“sdklib.build.DuplicateFileException:APK 内相同路径的重复文件”,因为 HelloComputeNDK 示例在“Android.mk”中明确包含 RenderScript 支持库:
include $(CLEAR_VARS)
LOCAL_MODULE := RSSupport
LOCAL_SRC_FILES := $(SYSROOT_LINK)/usr/lib/rs/lib$(LOCAL_MODULE)$(TARGET_SONAME_EXTENSION)
include $(PREBUILT_SHARED_LIBRARY)
如果我从 Android.mk 中删除这些行,示例将成功构建和安装,并且我会遇到与以前相同的 API 21 崩溃。
最佳答案
这是由于 ndk-build 中的一个错误,它没有将“-target-api 19”传递给 llvm-rs-cc。自从 NDK r9b 中首次支持 RS 以来,RenderScript 主机工具(bcc_compat、llvm-rs-c 等,从 K 分支编译,API 19)直到 r10c 从 L 分支(API 21)重建时才更新。如果没有显式选项“-target-api N”,r10c+ 中的 llvm-rs-cc 使用默认 API,即 21,并且无法在 logcat 中看到的 Kitkat 的 bcinfo 中进行版本检查。
修复已提交并将在 NDK r10e 或更高版本中可用:https://android-review.googlesource.com/#/c/124641
关于android - 使用 NDK C++ 中的 Renderscript 定位 Lollipop 前设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057049/
我使用工具栏是为了在我的应用程序中进行 Material 设计。一切正常,但除了更改菜单项文本颜色时,我完全无法接受该解决方案。我还张贴了我在申请中使用的文本和代码的屏幕截图,供您引用。我尝试了几种替
看起来 FloatingActionButton 在 Android 4.0 和 Lollipop 上无法正常工作。正如您在下图中看到的那样,在 Android Lollipo 上,阴影缺失,而在 A
SDK 升级到 Android 5 后,我无法使用 Intel 硬件加速执行管理器: $ android-sdk-macosx/tools/emulator -avd AVD_for_LowMemor
SDK升级到Android 5后,无法使用Intel Hardware Accelerated Execution Manager: $ android-sdk-macosx/tools/emulat
我有不同 draw9patch png 作为背景的按钮。目前按钮由 selector 控制,看起来像这样: 对于 Android Lollipop,他们有一个用于触摸效果的
我尝试在 Pre-Lollipop 设备上运行我的应用程序。但是这段代码向我显示了 Pre-Lolliop 和 Lollipop 设备的相同错误。 如果我将“android:”添加到样式中(如样式 2
我实现了一个自定义的 SurfaceView 来绘制相机预览,并在其上完成了所有捕获和手动对焦操作。它在 Pre-Lolipop 设备上运行良好,但问题是它在 Lollipop 设备上崩溃。 发生的最
风格 @color/my_primary_color @color/my_primary_dark_color @color/accent 布局
我想在 Lollipop 设备中显示较旧的时间选择器(如 Lollipop 设备之前的时间选择器)。可以 这是可能的。 最佳答案 您可以通过将 timePickerMode 属性设置为“spinner
嗨,所以我有点困惑,想知道是否有人能指出我正确的方向。 在 Lollipop 和 pre-lollipop 上使用 Google Play 商店 您会在 Lollipop 上看到可选择的 View 具
如果我们希望使用 Material Design 的应用同时支持 Lollipop 和 Lollipop 之前的设备,以下哪种方法是正确的? 单独使用 Android 支持库:仅对整个应用程序使用支持
我正在使用 appcompat/support-v7 中引入的新工具栏小部件。我想根据用户是否向上/向下滚动页面来隐藏/显示工具栏,就像在新的 Google Playstore 应用程序或 NewsS
我的数据库中有一个 .mhtml 文件作为字节数组。我写了下面的代码,它在 Lollipop 之前的设备上运行良好。但它不适用于 Lollipop 和棉花糖。 代码:- String p
根据标题,我能够在下面的 Lollipop 中成功读取/写入数据,但在 Lollipop 中多次读取/写入失败。 这就是我读/写数据的方式: boolean isRead= getmBluetooth
我刚刚在 Android Studio 上安装了 Android 5,并在模拟器上进行了第一次运行。我发现“API Demos”应用程序非常有趣,我想找到代码。我说的是这个应用程序: 有人知道我在哪里
我正在关注 this tutorial在 Android Material Design 中使用颜色(我的 ActionBar 和 StatusBar)。我确实按照教程进行操作,但没有反射(refle
在我的应用程序中,用户可以通过它调用任何号码,我正在启动蓝牙 audioManager.setBluetoothScoOn(true); audioManager.startBluetoothSco(
我正在我的 android 应用程序中实现 Google map API v2。该应用程序在所有设备上都可以正常工作,但在 Lollipop 设备上却不行。应用程序在 Lollipop 中崩溃。我确实
我正在开发一个项目,其中有一个日期选择器。我正在尝试为其设置最大日期和最短日期。最短日期是今天之后 1 天,最大日期是今天之后 11 天。但问题是在 Lollipop 设备中,最后一个最大日期显示为可
我正在使用嵌入式无线系统,它以定义的时间间隔生成数据包。目的是检测设备/系统何时重新启动。为此,我读到 Lollipop 序列编号是最适合此目的的编号方案。 “在此编号方案中,序列号从负值开始,增加直
我是一名优秀的程序员,十分优秀!