4

我有我的命名爲(例如)「應用程序」「EMP-庫」「應用程序3個模塊面對圖書館「Android的棉花糖 - 呼叫從另一個庫模塊得到墜毀庫模塊(本地庫)

app - 僅包含加載屏幕並打開emp-library庫活動。

EMP-庫 - 這是庫模塊,它包含了員工的基本形式和相機模塊,以獲得員工的圖像和圖像將被傳遞到臉庫以檢測面部。

臉庫 - 這是庫模塊,它包含了人臉檢測庫檢測面(原生庫 - 自己的人臉檢測算法)的應用程序在棒棒糖設備工作

。但是,當我在棉花糖執行應用程序,它崩潰與下面的例外。

Fatal signal 11 (SIGSEGV), code 2, fault addr 0xdeadbaad in tid 32696 

注意:這是我在日誌中得到的唯一錯誤消息。

我想要爲棉花糖設備生成任何特定的本機庫嗎?請有人幫我解決這個問題?

更新時間:

- >由於我無法找到任何技術故障(到了我的知識,我沒有得到在本機代碼的任何異常),我也跟着試錯法。

- >我增加了從應用模塊臉庫本地電話(我不應該在我的情況下,用這個)。現在的應用程序非破壞

- >所以,問題是「face-library模塊調用從emp-library模塊」。兩者都是庫模塊。

是否有棉花糖任何約束調用從庫(EMP-庫)模塊本地庫(臉庫)?

回答

6

不,你不需要編譯特定的版本到棉花糖。由於棉花糖適用於armeabi-v7和armeabi,除了是64位編譯的armV8。

首先,嘗試在armv8版本中編譯你的庫。

確保您在清單中擁有權限,或者如果您在執行時間內詢問權限(例如相機)。

你的錯誤是一般性錯誤,那麼,你可以嘗試本機調試發現這是它提供了錯誤https://codelabs.developers.google.com/codelabs/android-studio-jni/index.html?index=..%2F..%2Findex#0

庫或者您可以使用一個記錄器,它像一個C的printf。

這裏logger.h

#ifndef LOGGER_H 
#define LOGGER_H 

#include <strings.h> 
#include <android/log.h> 

#define LOG_INFO(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) 
#define LOG_ERROR(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) 

#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG,__VA_ARGS__) 
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , LOG_TAG,__VA_ARGS__) 
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , LOG_TAG,__VA_ARGS__) 
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , LOG_TAG,__VA_ARGS__) 
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , LOG_TAG,__VA_ARGS__) 

#endif 

在CPP文件的一個例子:

#include "Foo.h" 
#include "logger.h" //include your logger.h 
#define LOG_TAG "your_Log_tag" 

void Foo::myFunction(char * mystring) 
{ 
LOGV("Hello foo %s",mystring) 
} 

我希望,這將有助於你找到錯誤的位置。如果你可以更具體,我可以幫你解決問題。

我通常在使用OpenCV C++和Android進行圖像處理時工作,不幸的是這些錯誤非常常見。

+1

感謝您的回覆。但是當我從「app」模塊調用本地庫時,應用程序不會崩潰。我已經添加了日誌。我確實得到了墜毀的日誌。但沒有任何價值(因爲,停止的地方是方法結束)。 :( – SKK