问题标签 [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.

0 投票
1 回答
3604 浏览

c++ - Android:静态链接到 libstdc++

我的程序可以很好地为 Android 编译,但是当我尝试将其复制到 Android 模拟器时,它会出现以下错误:

acpy是我编写的一个小脚本,它执行以下操作:

这是我构建应用程序的方式:

换行符只是为了清楚起见,实际输出中不存在换行符。

YoghurtGum 是我的游戏库,它已经静态和动态链接到libstdc++.

当我删除lstdc++时,程序无法编译,因为它找不到库。

有没有办法stdlibc++静态链接或将应用程序链接到模拟器中正确的动态库?

提前致谢。

0 投票
4 回答
1185 浏览

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 语句替换它?

0 投票
2 回答
986 浏览

java - 是否可以实施一个安全的应用程序来阻止 Android 上的互联网漫游?

我需要开发一个应用程序来检查手机是否处于漫游状态。如果它处于漫游状态,则应用程序应阻止所有应用程序的互联网,但白名单中的几个应用程序除外。在非漫游模式下,它应该允许所有请求。用户应该没有办法杀死或暂停应用程序或打开互联网。
我对android不太熟悉,所以我真的不知道是否可以在不修改操作系统的情况下实现。有没有办法做到这一点?

0 投票
1 回答
2465 浏览

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 库。

0 投票
2 回答
5216 浏览

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 有什么区别?

0 投票
2 回答
6066 浏览

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> 和修订说明。

0 投票
1 回答
1039 浏览

android - malloc/free pthread_t 跨线程时的故障地址

当我 malloc pthread_t 保存新创建的线程 id 并将其释放到另一个线程时发生故障地址。代码如下:

当我取消注释 TaskInfo 的成员 dummy_int 时,它有时会成功运行,但有时会失败。我的平台是 VMWare + Ubuntu 9.10 + ndk r3

谢谢!

0 投票
5 回答
37061 浏览

c++ - 使用基本 C++ 获取系统滴答计数?

我本质上想重建 getTickCount() windows 函数,这样我就可以在基本的 C++ 中使用它,而无需任何非标准库甚至 STL。(因此它符合 Android NDK 提供的库)

我看过

钟()

当地时间

时间

但我仍然不确定是否可以使用时间库复制 getTickCount windows 函数。

谁能指出我正确的方向如何做到这一点,或者即使它可能?

我想做的概述:

我希望能够计算应用程序“执行”某个功能的时间。

因此,例如,我希望能够计算应用程序尝试向服务器注册的时间

我正在尝试将它从 Windows 移植到基于 linux 的 Android 上运行,这是 Windows 代码:


0 投票
5 回答
23122 浏览

android - 如何在 Android 中创建命名管道 (mkfifo)?

我在 Android 中创建命名管道时遇到了麻烦,下面的示例说明了我的困境:

代码总是打印:

我无法弄清楚为什么会失败。该应用程序具有 android.permission.WRITE_EXTERNAL_STORAGE 权限。我可以在同一位置创建具有完全相同名称的普通文件,但管道创建失败。有问题的管道应该可以从多个应用程序访问。

  1. 我怀疑没有人可以在 /sdcard 中创建管道。这样做的最佳地点在哪里?
  2. 我应该设置什么模式桅杆(第二个参数)?
  3. 应用程序是否需要任何额外的权限?
0 投票
3 回答
10952 浏览

c++ - GCC:简单继承测试失败

我正在构建一个名为 YoghurtGum 的开源 2D 游戏引擎。现在我正在使用 Google 提供的 NDK 开发 Android 端口。

由于我在应用程序中遇到的错误,我快要疯了,所以我做了一个简单的测试程序:

看起来很容易,对吧?这是我编译它的方式,这与我编译其余代码的方式相同:

(为清楚起见,添加了换行符)。这编译得很好。但随后我们进入链接器:

正如您可能会说的那样,那里有很多不需要的东西。那是因为它不起作用。它失败并出现以下错误:

这些与我从实际应用程序中得到的错误相同。

如果有人可以向我解释我在测试中出了什么问题,或者我在链接器中忘记了什么选项,我将非常非常感激。

提前致谢。

更新:

当我使我的析构函数非内联时,我得到了新的和更令人兴奋的链接错误: