小编Ani*_*ole的帖子

如何在Android中使用addr2line

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

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

android shared-libraries native-code android-ndk addr2line

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

如何从android中的本机代码中查找内存泄漏

只是想知道是否有人知道如何从Android中找出本机代码中的内存泄漏.谷歌搜索提供了很多解决方案,但没有一个是完整的.如果有人知道怎么做,请告诉我.

java-native-interface android memory-leaks memory-management android-ndk

25
推荐指数
1
解决办法
2万
查看次数

Android位图本机代码 - 链接问题

编译我的应用程序时遇到问题,这是受位图等离子的启发.我在打电话

    if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) {
    LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret);
    return;
}

if (info.format != ANDROID_BITMAP_FORMAT_RGB_565) {
    LOGE("Bitmap format is not RGB_565 !");
    return;
}

if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) {
    LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
}

       /*****code here***********/
AndroidBitmap_unlockPixels(env, bitmap);
Run Code Online (Sandbox Code Playgroud)

我在源文件中包含了android/bitmap.h.我在ubuntu 10.10上使用android-ndk-r5b和sdk-9.

我收到了一个错误

 /home/user5432/workspace/bitmapproj/obj/local/armeabi/objs-debug/mybitmap.o : In function Java_com_example_plasma_PlasmaView_renderPlasma
"undefined reference to AndroidBitmap_getInfo"
"undefined reference to AndroidBitmap_lockPixels"
"undefined reference to AndroidBitmap_unlockPixels"
Run Code Online (Sandbox Code Playgroud)

问题出在调试代码上.但是问题是什么?任何人都有答案吗?

android bitmap android-ndk

22
推荐指数
3
解决办法
1万
查看次数

如何在JNI中将事件/信号从C发送到Java

是否有任何机制通过JNI从C发送异步事件/信号到Java或反之?我需要捕获从C到Java的信号/事件.

c java java-native-interface events signals

8
推荐指数
1
解决办法
3248
查看次数

队列性能明智,这是更好的实现 - 数组或链接列表

当我必须插入很少的元素时,哪种方式可以更快地排队和出列,是否数组比链表更好?

我需要插入一些元素,我必须从队列中删除并读取已删除的元素.如果是数组,我可能每次删除元素时都要修改索引.插入和删除也可能同时发生.

从下面的案例中哪个更好?

typedef struct{
    mylist list;
    struct mylistQ *next;
}mylistQ;
Run Code Online (Sandbox Code Playgroud)

数组代码

 static mylist myListQ[QUEUESIZE+1];
int qLast = 0;

void enqueue_element(mylist qItem)
{
        myListQ[qLast] = qItem;
    qLast++;
}

mylist dequeue_element()
{
 retryq:
   if(qLast >0) {
    mylist qReturn = myListQ[0];  
    int i;
    for (i = 0; i < qLast - 1; i++){
        myListQ[i] = myListQ[i + 1];
    }
    qLast--; 
    return qReturn;
     }
   else {
    goto retryq;
    }
}
Run Code Online (Sandbox Code Playgroud)

链接列表

 int qLast = 0;

mylistQ *headElement = NULL;   
mylistQ *tailElement = NULL; …
Run Code Online (Sandbox Code Playgroud)

c arrays linked-list deque

5
推荐指数
1
解决办法
9014
查看次数

ffmpeg关于android的汇编 - 汇编错误

我正在尝试使用霓虹灯支持编译ffmpeg for android,但我得到以下汇编程序错误.如果有人对此有任何疑问,请告诉我?

/home/user1/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -MMD -MP -MF /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d.org -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -O2 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300 -I/home/user1/workspace/FFMPEGFinal/jni/SDL/include -I/home/user1/workspace/FFMPEGFinal/jni -DANDROID -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DCMP_HAVE_NEON -DCMP_HAVE_VFP -fasm -Wa,--noexecstack -O2 -DNDEBUG -g -I/home/user1/android-ndk-r5b/platforms/android-8/arch-arm/usr/include -c  /home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S -o /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o && rm -f /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d && mv /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d.org /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S: Assembler messages:
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:54: Error: bad instruction `vld1.32 {d0},[r0,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:55: Error: bad instruction `vld1.32 {d1},[r1,:64],r8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:56: Error: bad instruction `vld1.32 {d4},[r2,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:57: Error: bad instruction `vld1.32 {d5},[r3,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:58: …
Run Code Online (Sandbox Code Playgroud)

assembly android ffmpeg neon android-ndk

3
推荐指数
1
解决办法
7283
查看次数

Vs的性能为Vs而Vs转到

可能重复:
C/C++:GOTO比WHILE和FOR更快吗?

我知道这已被问过很多次,但我从来没有得到满足我用Google搜索满足的答案.

我在某处读到每个循环(for/while/do-while/untill)最终将在内部转换为goto语句,这是真的吗?

如果没有,根据性能明智,哪个是最好的循环使用?如果有人知道,请告诉我?

c performance loops for-loop while-loop

3
推荐指数
1
解决办法
4340
查看次数

找到键值接近给定值的对象的有效方法

我正在使用ES6.假设我有一个如下所示的排序数组.不使用lodash或除jquery之外的任何其他库.

    sortedArray = [
    {a: "a", b: 2, c: "something1"},
    {a: "a1", b: 3, c: "something2"},
    {a: "a2", b: 4, c: "something3"},
    {a: "a3", b: 5, c: "something4"},
    {a: "a4", b: 6, c: "something5"},
    {a: "a5", b: 7, c: "something6"}
]
Run Code Online (Sandbox Code Playgroud)

是否有一种有效的方法来找出其键值b值最接近所提供值的对象.

如果我提供值3.9,它应该返回{a: "a2", b: 4, c: "something3"}.

任何帮助表示赞赏.

javascript ecmascript-6

2
推荐指数
1
解决办法
86
查看次数

在android中创建临时文件的文件夹,为什么/ data/local/tmp对我不起作用?

我正在尝试在/ data/local/tmp目录中创建一个临时文件.路径是正确的,我也添加了WRITE_EXTERNAL_PERMISSION权限.但是我仍然从本机代码中得到一个错误,指出无法创建该文件.

代码如下.

File *file = fopen("mytxt.txt", "/data/local/tmp/");
Run Code Online (Sandbox Code Playgroud)

返回值文件始终包含空值,并且不创建任何文件.还有什么需要做的吗?

是否有任何其他临时文件夹,我可以在Android中用于此目的?

感谢您提供的任何帮助.

android android-emulator

0
推荐指数
1
解决办法
2万
查看次数

从C到JNI调用Java方法时出现异常NOSUCHMETHODERROR

我在使用JNI在Java和C之间共享流时遇到问题.我试图从C调用Java方法,但是nosuchmethodfound当我想要获取时,我得到了一个异常GetObjectMethodID.

C代码:

jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID aMethodID = (*env)->GetMethodID(env, cls, "callbackmethod", "(I)V");
if (aMethodID == 0) { 
    log("Unable to get methodID"); //Always getting aMethodID as 0
}
int myvar = 7;
(*env)->CallVoidMethod(env, obj, aMethodID, myvar);
Run Code Online (Sandbox Code Playgroud)

Java代码:

public class myclass extends activity {
    private void callbackmethod(int i) {
        Log.d("Tag", "In Java code");
    }

    -------
    more code
}
Run Code Online (Sandbox Code Playgroud)

现在我总是收到错误Ljava/lang/NoSuchMethodError;: callbackmethod.

一切都很好,但我的代码不起作用.问题是什么?

java java-native-interface android android-ndk

0
推荐指数
1
解决办法
6172
查看次数

在android上使用debgging符号的未定义引用

我正在尝试使用调试选项集编译我的应用程序.我已经包含了android/bitmap.h文件.所有东西都可以很好地编译android/bitmap.h文件中的方法,但链接器存在问题

/home/user5432/workspace/bitmapproj/obj/local/armeabi/objs-debug/mybitmap.o : In function Java_com_example_plasma_PlasmaView_renderPlasma
"undefined reference to AndroidBitmap_getInfo"
"undefined reference to AndroidBitmap_lockPixels"
"undefined reference to AndroidBitmap_unlockPixels"
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这是什么问题?

linker android android-ndk

0
推荐指数
1
解决办法
1371
查看次数