问题标签 [native-activity]

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 回答
3952 浏览

android - 如何将 NativeActivity 的内容视图设置为用 Java 创建的组件

有没有办法将 NativeActivity 的内容设置为用 Java 创建的组件(例如 FrameLayout、ImageView 等)?我需要使用 NativeActivity(用于在 Xperia Play 上获取触摸板输入),但我还需要能够查看在 Java 代码中创建的组件。

我已经尝试覆盖 onCreate 命令并在那里调用 setContentView,但是虽然这不会引发任何错误,但它也没有做任何事情(显然是因为内容视图已经由本机代码设置)。是否有某种窗口 id 或我可以传递给本机代码的东西来告诉它内容视图应该是什么,或者可以在 XML 中以某种方式设置它以将 NativeActivity 的内容视图设置为我可以修改的组件来自Java?

如果您需要更多信息,请告诉我。

0 投票
1 回答
1905 浏览

android - IntelliJ IDEA 运行 Android Native Activity 应用程序

我正在尝试运行 Android NDK 附带的本机活动示例。我记得它曾经在 Eclipse 中运行良好,但在 IntelliJ IDEA 中,当我从运行配置对话框中选择“启动默认活动”时,我总是收到一条错误消息“未找到默认活动”。如果我尝试输入自定义活动名称,如“android.app.NativeActivity”,它又找不到它。

我是坚持使用 Eclipse 还是有解决此问题的方法?

0 投票
2 回答
3639 浏览

android - NativeActivity 没有完成

我从 JavaActivity 调用 NativeActivity。我的 NativeActivity 的入口点是

最后,我打电话给

然而,我的本机活动只是挂起,而不是返回到调用它的 Java 活动(它被简单地调用使用startActivity)。它似乎处于暂停状态。我可以让它返回到上一个活动的唯一方法是exit(0)在我的 android_main 结束时调用,但是这会杀死进程并导致其他问题。

如何成功退出 NativeActivity 并返回调用它的 JavaActivity?

0 投票
0 回答
390 浏览

android - 使 NativeActivity 表现得像服务一样

我有一个应用程序,主要用本机代码编写,基于 NativeActivity。大多数情况下,这作为全屏活动运行,并且像这样工作得很好。但是对于一个特定的用例,我需要能够在后台运行它,无头,通过通知和 toast 与用户通信。

在 Android 上执行此操作的惯用方法是使用服务;但是我不能在这里这样做,因为代码绝对必须是NativeActivity(因为本机代码依赖于NativeActivity事件模型,在你问之前,不,我不能改变这个)。

所以我需要一些方法来强制 Activity 像服务一样(至少对用户)。

我能想到的最不坏的方法是以某种方式隐藏 Activity,以便它运行,但不向用户显示。甚至还有一个方法,Activity.setVisible(),它应该做到这一点;但是当我尝试它时,它似乎无法正常工作。(Activity 出现,但空白,然后在应用程序显示其第一个 Dialog 时消失。如果这有所不同,这是在 Honeycomb 平板电脑上。)

理想情况下,我当然希望NativeService跟NativeActivity一起去,可惜这样的东西好像不存在,而且从源码看NativeActivity,写一个NativeService看起来很不简单。

建议?

0 投票
1 回答
6375 浏览

android - 如何在本机活动中使用共享库

我有一个带有本机活动的 Android 项目。这个本机活动使用名为“main”(libmain.so 文件)的共享库来启动。(带有 ndk/samples/native-activity 的代码)

这个应用程序运行良好。

“主”模块 Android.mk 文件:

现在我想添加“主”库使用的另一个共享库(例如游戏引擎)。我已经建立了一个“游戏”模块(libgame.so)。

但是当我将“主要”与“游戏”联系起来时,就像这样:

代码没有变化!
该应用程序不再启动,我在 Logcat 中出现此错误:

此崩溃是由于添加到共享库的链接...

为什么链接到共享库会使应用程序无法加载(崩溃)?
如何在原生 android 项目 (no-java / native-activity) 中使用共享库?
(我想这是可能的......否则原生活动非常有限......)

谢谢 !:)

0 投票
1 回答
1775 浏览

android - 在android上选择多个联系人

我已经看到此代码段用于打开选择一个联系人的本机活动

我感兴趣的是用于消息的活动在 android 上,当你写消息并按“ add recipient”时,你会得到一个选择多个联系人的活动。

有没有希望在我的应用程序中使用该活动?

0 投票
2 回答
14490 浏览

android - 直接在 C++ 中访问 Android APK 资产数据,无需资产管理器和复制

我在我的引擎中使用纯 C++ 在 android 中创建游戏引擎。没有单个 java 文件。基本上它是一个只能存储到外部存储器的游戏。当我通过 adb 手动将我的资产数据移动到我的外部 sd 卡时,游戏已经运行良好且稳定。

这不是一个好的解决方案,因为它无法交付。因此,我在 Assets 文件夹中有我的资产数据,该文件夹在构建过程中被移动到具有以下结构的 apk 文件中:

资产/数据/MoreFolders/Withsubfolders 资产/数据/EngineData.zip 资产/数据/ScriptData.zip

但我不知道这些文件在文件系统上的什么位置以便在 c++ 代码中访问它们。

所以我试图获取文件目录的路径。由于本机活动状态中的错误,我必须以普通代码检索信息。

其等效于 android.os.Environment.getFilesDir() 和 android.os.Environment.getExternalStorageState() 等的 c++ 代码

效果很好并导致

内部路径 = /data/data/com.fantasyhaze.rememory/files

缓存目录 = /data/data/com.fantasyhaze.rememory/cache

外部路径 = /mnt/sdcard/Android/data/com.fantasyhaze.rememory/files

查找包代码路径 = /mnt/asec/com.fantasyhaze.rememory-2/pkg.apk

但是资产文件夹中没有文件...

我需要访问一个文件夹作为正常工作目录来读取文件。这将是可能的

/mnt/sdcard/Android/data/com.fantasyhaze.rememory/files/Data

但是通过资产管理器将所有数据从资产文件夹(无论它在哪里)移动到这个文件夹,会导致内存消耗加倍。

资产 >1GB 意味着资产 >2GB,这是没有意义的。不仅如此,assert 文件夹似乎不能反复工作,并且仅适用于使用较大 pak 文件时不可能的小数据文件。也许在使用解压缩系统时可以直接从 apk 访问这些文件,然后 uzip 我的资源文件,但因此无论如何我都必须选择 apk 路径。

所以我的问题:

  1. 文件系统上的 apk 中的 Assets 文件夹在哪里?
  2. 检索apk位置或可执行文件位置的代码(c ++)是什么
  3. 我可以使用普通的文件打开方法直接访问它吗?或者只有在我解压后才能访问它。如果我可以在不打开包装的情况下使用它,如何使用?
  4. 如果安装了 sd 卡,检索信息的代码 (c++) 是什么?

我希望有一个人可以帮助我 :)

编辑:添加缓存目录和包目录代码(以及它的输出路径),为其他需要它的人提供源代码。

0 投票
2 回答
12055 浏览

java - Android:从 C++ Native Activity 调用 Java 类

Java代码:

C源:

它失败了:

请问有什么提示我做错了吗?

0 投票
1 回答
467 浏览

android - Facebook 对话框失败并停止活动

我在 Android 上使用 Facebook SDK 来发布对用户提要的更新。当我没有安装 Facebook 客户端时,我能够让它工作。现在,即使在删除 Facebook 应用程序之后,当我尝试授权或打开提要对话框时,活动也会被突然终止。

我没有收到任何消息告诉我应用程序已崩溃或发生任何事情。它只是被摧毁了。唯一的消息是 Mono 告诉我线程 0x0 已过早完成,这很奇怪。此外,还有一个奇怪的“在这种情况下不支持”。来自网络核心的消息。

我正在使用 NativeActivity 类。我不直接使用它,但我在我的活动中扩展它。这是出现问题的地方的logcat:

0 投票
3 回答
5396 浏览

android - OpenCV2.4 与 Android Native Activity

我目前面临的问题与此问题中提出的问题相同,只是我使用的是 2.4 版本而不是 2.3.1。

我已将本机活动(从 ndk 示例)转换为 c++ 并修改了 android.mk 和 application.mk。

我有同样的错误(有 ~Mat 等等)。

当我阅读问题的答案时,我意识到我需要添加OPENCV_INSTALL_MODULES:=on and OPENCV_LIB_TYPE:=STATIC(这很奇怪,因为我有另一个使用本机 openCV 的项目不需要这两行)。

但它仍然无法正常工作。

Android.mk 如下:

我收到以下错误:

有什么我错过的吗?