问题标签 [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 回答
4248 浏览

android - 如何使用 NativeActivity 写入内部存储文件系统?

我正在将纯 C++ 游戏移植到 Android,由于我的目标是 Android 3.0+ 平板电脑,我选择使用 NativeActivity 以完全避免使用 Java。但是,我看不到任何可以让我写入设备内部存储的功能。对 fopen() 的调用将失败,因为我不知道应该写入哪个目录并且内部存储文件系统不可访问

这段代码通常在 Java 上发挥作用,为我的应用程序提供了内部可写数据目录的路径:

有人知道 C++ 的替代方案吗?否则我将不得不使用 JNI 调用上面的代码片段。

当然,我已经查看了$NDK/..../include/android/标头,但我没有看到我需要的候选方法。

0 投票
3 回答
4015 浏览

java - 如何从 java 活动中调用本机活动?

我知道我们可以从这个问题中描述的另一个 android 活动中调用一个活动。我的问题是我们可以通过意图或使用任何其他方式从 android 活动中调用本机活动吗?如果是,如何?

Android.mk我的本机活动文件如下,本机活动代码构建良好

我正在使用这段 xml 将我的本机活动包含在AndroidManifest.Xml文件中。我认为我在这里犯了一个错误。

谁能告诉我如何修复上面的 XML,以便在我的第一个基于 java 的活动中我可以做这样的事情(如果可能的话)

目前我无法编译这段代码,因为编译器找不到mynativeactivity

0 投票
1 回答
2590 浏览

android - Android NDK 原生音频示例崩溃

我已经构建了本机音频示例并将其下载到我的 Galaxy Tab 10.1,但它不起作用。看起来它即将开始(即窗口名称出现在顶部),但随后严重崩溃。我希望有人可能知道为什么?可能是选项卡上的音频支持有问题,还是......?

我还尝试使用“android_native_app_glue”创建自己的非常简单的本机活动,但它也崩溃了——即使我没有进行 OpenSL 调用。事实上,我所要做的就是将 -lOpenSLES 添加到我的 LOCAL_LDLIBS 以导致启动崩溃。当我删除该链接器标志时,没有崩溃。很奇怪,让我觉得选项卡中缺少关于原生音频支持的东西?

谢谢, ALF

0 投票
2 回答
2762 浏览

android-ndk - 启动 Android NDK 应用程序时出错

我编写了一个在启动时崩溃的 NativeActivity,因为(我的理论......)我在命名共享库或模块或 AndroidManifest.xml 中的某些东西时做错了。下面是我的应用程序启动时 LogCat 的输出,以及我的清单文件的内容。

我在设置时出错的任何想法?

谢谢, ALF

===================清单============================== ================

===================LOGCAT 输出============================= =================

07-31 23:13:11.770: WARN/dalvikvm(1384): threadid=1: 线程以未捕获的异常退出 (group=0x4016d760) 07-31 23:13:11.780: ERROR/AndroidRuntime(1384): 致命异常: main 07-31 23:13:11.780: 错误/AndroidRuntime(1384): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.Mythica.SpiderGame/android.app.NativeActivity}: java.lang.IllegalArgumentException: 无法加载本机库:/data/data/com.Mythica.SpiderGame/lib/libSpiderGame.so 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android. app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.access$1500(ActivityThread.java:122) 07-31 23:13 :11.780: ERROR/AndroidRuntime(1384): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005) 07-31 23:13:11.780: ERROR/AndroidRuntime(1384): at android.os.Handler。 dispatchMessage(Handler.java:99) 07-31 23:13:11.780: ERROR/AndroidRuntime(1384): at android.os.Looper.loop(Looper.java:132) 07-31 23:13:11.780: ERROR/ AndroidRuntime(1384): 在 android.app.ActivityThread.main(ActivityThread.java:4028) 07-31 23:13:11.780:错误/AndroidRuntime(1384):在 java.lang.reflect.Method.invokeNative(本机方法)07-31 23:13:11.780:错误/AndroidRuntime(1384):在 java.lang.reflect.Method.invoke(方法。 java:491) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 07-31 23:13:11.780:错误/AndroidRuntime(1384): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 dalvik.system.NativeStart.main (本机方法)07-31 23:13:11.780:错误/AndroidRuntime(1384):原因:java.lang.IllegalArgumentException:无法加载本机库:/data/data/com.Mythica.SpiderGame/lib/libSpiderGame。所以 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.NativeActivity.onCreate(NativeActivity.java:199) 07-31 23:13:11。780: 错误/AndroidRuntime(1384): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread .java:1715) 07-31 23:13:11.780: ERROR/AndroidRuntime(1384): ... 11 更多 07-31 23:13:11.780: WARN/ActivityManager(288): 强制完成活动 com.Mythica.SpiderGame /android.app.NativeActivity 07-31 23:13:11.800: 错误/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_errorWARN/ActivityManager(288): 强制完成活动 com.Mythica.SpiderGame/android.app.NativeActivity 07-31 23:13:11.800: ERROR/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_errorWARN/ActivityManager(288): 强制完成活动 com.Mythica.SpiderGame/android.app.NativeActivity 07-31 23:13:11.800: ERROR/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_error

0 投票
1 回答
1087 浏览

workflow-foundation-4 - 每次触发自定义事件时执行流程

工作流程

每次观看文件触发事件时,我都需要执行Show created file name

WatchFilesActivity : NativeActivity

延期

这很好用,但只有一次,在此之后主机关闭。

我不能放置 WhileActivity 因为我需要处理连续的非常快速的文件创建,并且传入文件的处理时间(在这种情况下显示创建的文件名)大于文件创建速率

谢谢!

0 投票
1 回答
4713 浏览

android - 从 NativeActivity 获取上下文

我有一个使用 NativeActivity 的应用程序。我想调用 Java 来做一些需要上下文的事情(例如,访问 TelephonyManager 以查询 IMEI)。

如何为我的活动获取有效的上下文?

ANativeActivity 结构包含对我的应用程序有用的各种数据,例如 JavaVM 和 JNI 环境等。它还包含一个指向我的 NativeActivity 的类对象的作业对象。它不包含指向 NativeActivity实例的作业对象。我也没有看到任何有用的东西struct android_app

必须有可能做到这一点;有什么想法吗?

0 投票
2 回答
658 浏览

android - 在自己的进程中运行 Activity 的每个实例?

我使用 NDK 在 Android 上运行了大量第三方本机代码。此代码包含全局变量,因此每个进程仅支持单个会话。(除非 Android 有某种神奇的方法可以将共享库的多个实例加载到同一个进程中。)

我必须能够同时运行多个活动。这意味着每个 Activity 必须在不同的进程中运行。有谁知道我可以做到这一点吗?

请注意,进程关联在这里没有帮助,这是否允许我指定单个命名进程,单个 Activity 类的所有实例都在其中运行。我在这里想要的是让一个 Activity 类的多个实例,每个实例都在它们自己的进程中运行。

我在姜饼(或以上);我愿意考虑任何犯规的黑客行为来完成这项工作......

(另外:冒着听起来暴躁的风险,请不要我解释为什么这是一个坏主意,我应该做其他事情。告诉我我的外部要求是错误的并不能帮助我满足我的外部要求......)

0 投票
3 回答
2245 浏览

android - 将 OpenCV2.3.1 与 Android 本机活动一起使用时出现问题

我正在为 Android 开发计算机视觉应用程序。这项工作涉及尽可能快地获取相机帧,因此我尝试使用“android_native_app_glue”和“libnative_camera”直接在 C++ 中构建一个 android 应用程序来获取相机帧。这似乎是不相容的。

我测试了2个选项。

  1. 我尝试在 android NDK 示例“NativeActivity”上使用 OpenCV,只需进行一些必要的更改(将示例转换为 c++,修改 android.mk y application.mk 并包括使用命名空间和包含)它给出以下错误:

sharedLibrary : libnative-activity.so C:/Development/android-opencv-wsp/samples/native-activity/obj/local/armeabi-v7a/objs/native-activity/main.o: 在函数~Mat': C:\Development\android-opencv-wsp\samples\native-activity/../../OpenCV-2.3.1/share/OpenCV/../../include/opencv2/core/mat.hpp:297: undefined reference tocv::fastFree(void *)' 等等

  1. 我尝试导入必要的库以在 OpenCV2.3.1 教程 3 示例上进行本机活动。我只是修改了 Android.mk 并添加了:

LOCAL_STATIC_LIBRARIES := android_native_app_glue

立即,当我添加此行时,出现以下错误: SharedLibrary : libnative_sample.so C:/Development/android-opencv-wsp/samples/tutorial-3-native/obj/local/armeabi-v7a/objs/native_sample/ jni_part.o:在函数~Mat': C:\Development\android-opencv-wsp\samples\tutorial-3-native/../../OpenCV-2.3.1/share/OpenCV/../../include/opencv2/core/mat.hpp:297: undefined reference tocv::fastFree(void*)' 等等...

请问,有没有人用 openCV2.3.1 和 libnative_camera 测试过纯原生活动来获取相机帧?

提前致谢。

0 投票
1 回答
350 浏览

android - 使用 Android NativeActivity 接收轨迹球事件

我有一个基于 NativeActivity 的应用程序,它想要接收轨迹球事件。

根据(粗略的)文档,我应该通过struct android_app'onInputEvent()回调接收这些,就像我对键和运动事件所做的一样。但是,我没有得到任何东西。查看跟踪事件被发送到粘合层,但显然被调用AInputQueue_preDispatchEvent()in消耗process_input(),因此永远不会传递给我的应用程序。

有没有人使用 NativeActivity 获得轨迹球事件,如果有,怎么做?

0 投票
5 回答
8572 浏览

android - 使用 C++ 和 NativeActivity 类获取 Android APK 的名称

我正在使用 NDK 和 NativeActivity 编写一个 Android 应用程序。我的应用程序依赖于一些作为资产交付的第三方代码。目前我正在尝试提取这些资产,同时保持文件夹结构完整。

我尝试使用 AssetManager,但为了保持文件夹结构完整,对于我提到的简单任务,似乎涉及大量代码。从那以后,我将注意力转移到尝试将 APK 视为 ZIP 文件并以这种方式提取其内容。但这需要我找到 APK 的确切路径。

在普通的 Android 应用程序中,人们会使用 getPackageCodePath,但这是附加到 Context 类的抽象方法。我的问题是如何在不使用正常活动时获得 APK 的确切路径?

我还尝试通过 JNI 调用 getPackageCodePath,但由于无法找到该方法而导致应用程序崩溃。

编辑:这甚至可能吗?