问题标签 [android-ndk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Android:静态链接到 libstdc++
我的程序可以很好地为 Android 编译,但是当我尝试将其复制到 Android 模拟器时,它会出现以下错误:
acpy
是我编写的一个小脚本,它执行以下操作:
这是我构建应用程序的方式:
换行符只是为了清楚起见,实际输出中不存在换行符。
YoghurtGum 是我的游戏库,它已经静态和动态链接到libstdc++
.
当我删除lstdc++
时,程序无法编译,因为它找不到库。
有没有办法stdlibc++
静态链接或将应用程序链接到模拟器中正确的动态库?
提前致谢。
c++ - 将 Symbian C++ 移植到 Android NDK
我已经获得了一些 Symbian C++ 代码来移植以与 Android NDK 一起使用。
该代码中有很多特定于 Symbian 的代码,而我对 C++ 的经验很少,所以它运行得不是很好。
让我慢下来的主要原因是试图找出在普通 C++ 中用于 Symbian 特定代码的替代方案。
此刻,编译器正在为无法识别的类型抛出各种错误。
根据我最近的研究,我认为这些类型是 Symbian 特有的:
TInt、TBool、TDesc8、RSocket、TInetAddress、TBuf、HBufc、RPointerArray
将 TInt 和 TBool 更改为 int 和 bool 分别在编译器中工作,但我不确定其他类型使用什么?
任何人都可以帮我解决这些问题吗?尤其是 TDesc、TBuf、HBuf 和 RPointerArray。
Symbian 也有一个两相构造器,使用
新L
和
新Lc
但是将其更改为普通的 C++ 构造函数可以吗?
最后,Symbian 使用清理堆栈来帮助消除内存泄漏,我相信,删除清理堆栈代码是否可以接受,我认为应该用 try/catch 语句替换它?
java - 是否可以实施一个安全的应用程序来阻止 Android 上的互联网漫游?
我需要开发一个应用程序来检查手机是否处于漫游状态。如果它处于漫游状态,则应用程序应阻止所有应用程序的互联网,但白名单中的几个应用程序除外。在非漫游模式下,它应该允许所有请求。用户应该没有办法杀死或暂停应用程序或打开互联网。
我对android不太熟悉,所以我真的不知道是否可以在不修改操作系统的情况下实现。有没有办法做到这一点?
android - Android 上的 stdexcept
我正在尝试在 Android 上编译 SoundTouch。我从这个配置行开始:
./configure CPPFLAGS="-I/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/include/" LDFLAGS="-Wl,-rpath-link=/卷/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/lib -L/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/ arch-arm/usr/lib -nostdlib -lc" --host=arm-eabi --enable-shared=yes CFLAGS="-nostdlib -O3 -mandroid" host_alias=arm-eabi --no-create --no-递归
因为 Android NDK 以 ARM 为目标,所以我还必须更改 Makefile 以删除 -msse2 标志才能进行。
当我运行'make'时,我得到:
这并不奇怪,因为 -nostdlib 标志是必需的。Android 似乎既没有 stdexcept 也没有 stdlib。 我怎样才能克服这个编译 SoundTouch 的障碍?
猜测一下,可能有一些我不知道我应该使用的标志。我可以重构代码不使用stdexcept。可能有一种方法可以引入原始的 stdexcept 源并引用它。我也许可以链接到预编译的 stdexcept 库。
android - crtbegin.o 和 crtbegin_dynamic.o 是什么?
使用 Android x86 工具链调试链接错误 ( undefined reference to _dso_handle
) 时,我注意到它是静态链接的crtbegin_dynamic.o
。这个文件的目的是什么?工具链安装目录中还有另一个类似crtbegin.o
的包含缺少的符号 (_dso_handle)。crtbegin.o 和 crtbegin_dynamic.o 有什么区别?
android - 将 C++ 应用程序移植到 android
是否可以将广泛使用 STL 的 C++ 应用程序移植到 Android?我知道目前 NDK 不支持这一点,但是否有任何努力(开源或其他方式)来实现这一点?
如果没有,有没有办法为 Android 交叉编译 libstdc++?
更新:Ndk Revision 5 承诺基于 STLport 的默认 STL 实现。 http://android-developers.blogspot.com/2011/01/gingerbread-ndk-awesomeness.html 阅读这篇官方 NDK 博客文章,http://developer.android.com/sdk/ndk/index.html> 和修订说明。
android - malloc/free pthread_t 跨线程时的故障地址
当我 malloc pthread_t 保存新创建的线程 id 并将其释放到另一个线程时发生故障地址。代码如下:
当我取消注释 TaskInfo 的成员 dummy_int 时,它有时会成功运行,但有时会失败。我的平台是 VMWare + Ubuntu 9.10 + ndk r3
谢谢!
c++ - 使用基本 C++ 获取系统滴答计数?
我本质上想重建 getTickCount() windows 函数,这样我就可以在基本的 C++ 中使用它,而无需任何非标准库甚至 STL。(因此它符合 Android NDK 提供的库)
我看过
钟()
当地时间
时间
但我仍然不确定是否可以使用时间库复制 getTickCount windows 函数。
谁能指出我正确的方向如何做到这一点,或者即使它可能?
我想做的概述:
我希望能够计算应用程序“执行”某个功能的时间。
因此,例如,我希望能够计算应用程序尝试向服务器注册的时间
我正在尝试将它从 Windows 移植到基于 linux 的 Android 上运行,这是 Windows 代码:
android - 如何在 Android 中创建命名管道 (mkfifo)?
我在 Android 中创建命名管道时遇到了麻烦,下面的示例说明了我的困境:
代码总是打印:
我无法弄清楚为什么会失败。该应用程序具有 android.permission.WRITE_EXTERNAL_STORAGE 权限。我可以在同一位置创建具有完全相同名称的普通文件,但管道创建失败。有问题的管道应该可以从多个应用程序访问。
- 我怀疑没有人可以在 /sdcard 中创建管道。这样做的最佳地点在哪里?
- 我应该设置什么模式桅杆(第二个参数)?
- 应用程序是否需要任何额外的权限?
c++ - GCC:简单继承测试失败
我正在构建一个名为 YoghurtGum 的开源 2D 游戏引擎。现在我正在使用 Google 提供的 NDK 开发 Android 端口。
由于我在应用程序中遇到的错误,我快要疯了,所以我做了一个简单的测试程序:
看起来很容易,对吧?这是我编译它的方式,这与我编译其余代码的方式相同:
(为清楚起见,添加了换行符)。这编译得很好。但随后我们进入链接器:
正如您可能会说的那样,那里有很多不需要的东西。那是因为它不起作用。它失败并出现以下错误:
这些与我从实际应用程序中得到的错误相同。
如果有人可以向我解释我在测试中出了什么问题,或者我在链接器中忘记了什么选项,我将非常非常感激。
提前致谢。
更新:
当我使我的析构函数非内联时,我得到了新的和更令人兴奋的链接错误: