标签: android-ndk

如何在Android中使用addr2line

我被我的应用程序困住,因为我无法调试,因为它是多线程的并且因错误SIGSEGV而崩溃.我从LogCat那里获得了很多信息,它在我的本地库中提供了地址.如果我可以将这些地址转换为我的代码,将会很有帮助.

有没有人知道如何使用android-ndk提供的addr2line?

android shared-libraries native-code android-ndk addr2line

74
推荐指数
2
解决办法
8万
查看次数

有没有简单的方法登录Android NDK代码?

我正在寻找一种使用Eclipse在Android NDK应用程序中轻松调试C代码的方法.我已经阅读了使用gdb或类似方法调试应用程序的方法,但我想要的是一种以某种方式将消息推送到Eclipse的方法.

我正在寻找一种简单的解决方案,就像在C中使用打印功能并在DDMS日志或类似的东西中看到它一样简单.有没有人有这方面的经验?

c java-native-interface logging android android-ndk

66
推荐指数
4
解决办法
6万
查看次数

如何在Android shell中复制和编辑文件?

Android shell没有cp命令.Android shell也没有sedgrepvi.我没有可用的adb守护进程.有mv命令,但如果源是在只读设备上,它拒绝工作.

  1. 如果我必须递归地从只读设备复制某些目录该怎么办?
  2. 如何更改文本文件中的一行(例如"PATH =/cache"为"PATH =/mnt/asec")?

linux shell android sh android-ndk

65
推荐指数
5
解决办法
15万
查看次数

NDK找不到应用程序目录

运行ndk-build命令时,出现以下错误:

Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
Run Code Online (Sandbox Code Playgroud)

我的Android.mk文件的内容:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := FRE
LOCAL_SRC_FILES := FlashRuntimeExtensions.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := NativeQCAR
LOCAL_SRC_FILES := main.c
LOCAL_SHARED_LIBRARIES := FRE
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

添加以下行没有帮助:

NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ
Run Code Online (Sandbox Code Playgroud)

makefile android-ndk

65
推荐指数
6
解决办法
9万
查看次数

aarch64-linux-android-strip文件丢失

我更新了Android studio 2.3,我的项目出现了这些错误

Error:org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'C:\Users\...\AppData\Local\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip''


Error:net.rubygrapefruit.platform.NativeException: Could not start 'C:\Users\...\AppData\Local\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip'


Error:java.io.IOException: Cannot run program "C:\Users\...\AppData\Local\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip" (in directory "E:\projectNmame\app"): CreateProcess error=2, The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

任何身体都会帮助我解决它.

提前致谢

android android-ndk android-studio android-gradle-plugin

65
推荐指数
6
解决办法
3万
查看次数

如何在JNI中来回传递C结构到Java代码?

我有一些C函数,我通过JNI调用它接受一个结构的指针,以及一些其他函数,它们将分配/释放一个指向同一类型结构的指针,这样它就更容易处理我的包装器.令人惊讶的是,JNI文档对如何处理C结构几乎没有说明.

我的C头文件看起来像这样:

typedef struct _MyStruct {
  float member;
} MyStruct;

MyStruct* createNewMyStruct();
void processData(int *data, int numObjects, MyStruct *arguments);
Run Code Online (Sandbox Code Playgroud)

相应的JNI C包装文件包含:

JNIEXPORT jobject JNICALL
Java_com_myorg_MyJavaClass_createNewMyStruct(JNIEnv *env, jobject this) {
  return createNewMyStruct();
}

JNIEXPORT void JNICALL
Java_com_myorg_MyJavaClass_processData(JNIEnv *env, jobject this, jintArray data,
                                       jint numObjects, jobject arguments) {
  int *actualData = (*env)->GetIntArrayElements(env, data, NULL);
  processData(actualData, numObjects, arguments);
  (*env)->ReleaseIntArrayElements(env, data, actualData, NULL);
}
Run Code Online (Sandbox Code Playgroud)

...最后,相应的Java类:

public class MyJavaClass {
  static { System.loadLibrary("MyJniLibrary"); }

  private native MyStruct createNewMyStruct();
  private native void processData(int[] data, int numObjects, …
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface android-ndk

64
推荐指数
3
解决办法
4万
查看次数

如何使用echo o print在NDK-build Android.mk文件中打印var来调试编译?

我正在尝试使用ndk-build编译库时打印一些额外的信息.

例如:

LOCAL_PATH := $(call my-dir)
all:;echo $(LOCAL_PATH)
echo: $(LOCAL_PATH)
print:echo "i'm not working"
Run Code Online (Sandbox Code Playgroud)

当我做ndk-build时,只需编译所有Android.mk,但我没有得到控制台回声.我已经阅读了GNU make info(ndk-build只是一个很小的GNU make),有些帖子说echo必须使用$(VAR)才能工作,但它不适用于我的情况.

有些想法?

debugging makefile android-ndk

64
推荐指数
3
解决办法
5万
查看次数

Android NDK中的文件操作

我出于性能原因使用Android NDK主要在C中创建应用程序,但似乎fopen等文件操作在Android中无法正常运行.每当我尝试使用这些功能时,应用程序崩溃.

如何使用Android NDK创建/写入文件?

c file-io java-native-interface android-ndk

63
推荐指数
4
解决办法
9万
查看次数

无法在Android Studio中找到CMake

我需要在我的Android程序中添加C/C++代码,我需要LLDB,CMake和NDK.我在SDK管理器中找到了LLDB和NDK,但那里缺少CMake.我尝试从CMake官方网站手动下载它,发现对于Android我们需要SDK定制的CMake.

在此输入图像描述

如你所见,没有像CMake这样的选择.

我在哪里可以找到适用于Android的CMake版本?

我在网站上尝试过CMake,在ndk-bundle/build文件夹中找到了一个,但两者都给出了同样的错误.可以用它做什么以及如何解决问题?

Build command failed.

Error while executing 'C:\Users\amishr33\AppData\Local\Android\sdk\cmake\bin\cmake.exe' with arguments {-HC:\Users\amishr33\AndroidStudioProjects\MyApplication\app\src\main\jni -BC:\Users\amishr33\AndroidStudioProjects\MyApplication\app\.externalNativeBuild\cmake\debug\armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=C:\Users\amishr33\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\amishr33\AndroidStudioProjects\MyApplication\app\build\intermediates\cmake\debug\obj\armeabi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:\Users\amishr33\AppData\Local\Android\sdk\cmake\bin\ninja.exe -DCMAKE_TOOLCHAIN_FILE=C:\Users\amishr33\AppData\Local\Android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=15 -DCMAKE_CXX_FLAGS=-std=c++11 -DANDROID_TOOLCHAIN=clang -DANDROID_STL=gnustl_static}
CMake Error: Could not create named generator Android Gradle - Ninja
Generators
  Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual …
Run Code Online (Sandbox Code Playgroud)

android cmake android-ndk android-studio

62
推荐指数
6
解决办法
7万
查看次数

NDK分辨率结果:项目设置:Gradle模型版本= 5.4.1,NDK版本为UNKNOWN错误

将Android Studio和Gradle更新为3.5后,现在出现此错误:

NDK分辨率结果:项目设置:Gradle模型版本= 5.4.1,NDK版本未知

我将build-gradle中的Gradle版本更改回3.4.2,但这没有帮助。

android synchronization gradle android-ndk android-studio

61
推荐指数
6
解决办法
4万
查看次数