我正在尝试使用PocketSphinxAndroidDemo项目为Android构建PocketSphinx.我放弃了使用Cygwin和Windows构建它并安装了Ubuntu VM的任务.我正在取得进步,但我似乎陷入困境,我似乎无法弄明白.它必须是我想念的简单事物.ndk-build提供以下输出(剪切):
Compile thumb : pocketsphinx_jni <= pocketsphinx_wrap.c
/home/user/development/PocketSphinxAndroidDemo/jni/pocketsphinx_wrap.c:760:26: error: pocketsphinx.h: No such file or directory
/home/user/development/PocketSphinxAndroidDemo/jni/pocketsphinx_wrap.c:761:28: error: sphinxbase/err.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
头文件(显然)与JNI文件不在同一文件夹中.已在Android.mk文件中设置LOCAL_C_INCLUDES标志以包含所需的标头 -
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android \
$(SPHINX_PATH)/sphinxbase/include/sphinxbase \
$(SPHINX_PATH)/sphinxbase/include \
$(SPHINX_PATH)/pocketsphinx/include
Run Code Online (Sandbox Code Playgroud)
我应该注意,我的SPHINX_PATH变量看起来像这样,而且它是正确的 -
SPHINX_PATH := ~/development
Run Code Online (Sandbox Code Playgroud)
如果我将头文件复制到/ jni /文件夹中,我会更远但是编译器开始对我大喊大叫,因为其他位置缺少头文件.当然我错过了一些简单的东西.是不是在那里我可以设置"在炸毁之前查看头文件的这些位置"标志?
我不是一个C/C++或Linux家伙,所以我在这里不知所措.任何帮助将不胜感激.谢谢!
我使用bambuser的文件编译了FFMPEG for android.编译运行正常.没有错误.我还确保在build.sh中更改包名称.但是,一旦我尝试链接到文件,手机就会抛出UnsatisfiedLinkError.这是Androkd.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
MY_LIB_PATH := ffmpeg-android/build/ffmpeg/armeabi/lib
LOCAL_MODULE := bambuser-libavcore
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libavcore.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := bambuser-libavformat
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libavformat.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := bambuser-libavcodec
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libavcodec.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := bambuser-libavdevice
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libavdevice.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := bambuser-libavfilter
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libavfilter.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := bambuser-libavutil
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libavutil.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := bambuser-libswscale
LOCAL_SRC_FILES := $(MY_LIB_PATH)/libswscale.so
include $(PREBUILT_SHARED_LIBRARY) …Run Code Online (Sandbox Code Playgroud) 我知道这可能是一些问题的重复.但这些线程的答案并没有帮助我.
我正在尝试使用Bambuser的ffmpeg为android编译ffmpeg库.
我为客户端版本1.3.7下载了Archive到1.6.0.来自bambuser.
我按照REAME中的说明进行操作.
在运行./build.sh时遇到以下错误
arm-linux-androideabi-gcc is unable to create an executable file.
C compiler test failed.
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solving the problem.
Run Code Online (Sandbox Code Playgroud)
这是ffmpeg 的config.log的最后几行
mktemp is /bin/mktemp
check_ld
check_cc …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的应用程序:
#include <vector>
void android_main(struct android_app* state)
{
}
Run Code Online (Sandbox Code Playgroud)
当我构建它时,我收到以下错误:
test/jni/main.c:14:18:错误:vector:没有这样的文件或目录
我该怎么包括STL头文件?我找到了stlport,我可以看到它的目录中存在头文件,但是如何包含它们呢?
编辑:我的Application.mk文件包含以下行:
APP_STL := stlport_static
Run Code Online (Sandbox Code Playgroud) 嗨,我是Android NDK开发的新手.
MacBook-Pro:JNIexample sk$ ndk-build
usage: dirname path
gmake: /Users/sk/build/core/build-local.mk: No such file or directory
gmake: *** No rule to make target `/Users/sk/build/core/build-local.mk'. Stop.
Run Code Online (Sandbox Code Playgroud)
为什么我会收到他的错误?
我正在使用 NDK 5 为 android 开发本机 apk。
我的问题是,如何从本机代码访问外部 SD 卡的写入和读取?
如何为android中的mp3文件提供音频效果.例如回声效果混合一些背景音乐等.
自Android L NDK起__system_property_get删除(https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/keQP6L9aVyU).Android L NDK中是否有另一个API可以访问相同的属性值?
我正在尝试构建捆绑的教程gstreamer-sdk-android-arm-debug-2013.6.将Android.mk在文件src/jni目录(教程1个项目)引用的环境变量,例如GSTREAMER_SDK_ROOT.根据我的阅读,Android Studio不使用/传递环境变量到构建脚本.是否有修改makefile和定义/检索构建脚本所需的键/值对的最佳实践?
我收到以下错误:
JNI在应用程序中检测到错误:JNI GetMethodID被调用挂起异常java.lang.ClassNotFoundException:在路径上找不到类"package.name.class":DexPathList [[zip file"/system/framework/sample.jar"], nativeLibraryDirectories = [/ vendor/lib,/ system/lib]]
JNI DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception java.lang.ClassNotFoundException: Didn't find class "package.name.class" on path: DexPathList[[zip file "/system/framework/XposedBridge.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
26771-26918/package.name.class A/art: art/runtime/java_vm_ext.cc:410] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
26771-26918/package.name.class A/art: art/runtime/java_vm_ext.cc:410] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
26771-26918/package.name.class A/art: art/runtime/java_vm_ext.cc:410] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
Run Code Online (Sandbox Code Playgroud)
以下是有关错误的更多信息:
`jmethodID MethodId;
JNIEnv * env;
int nStatus = gVM->GetEnv((void**)&env, JNI_VERSION_1_6);
int nResult = attachStatus(nStatus, &env);
LOG_HM("::attach status = %d::\n", nResult);
if (nResult == ATTACH_FAILED) { …Run Code Online (Sandbox Code Playgroud) android-ndk-r5 ×10
android ×9
android-ndk ×3
ffmpeg ×2
c++ ×1
cygwin ×1
gcc ×1
gstreamer ×1
ndk-build ×1
ubuntu-11.10 ×1