2012-03-29 25 views
6

私のプロジェクトではアンドロイド-ndk-profiler-3.1を使用してNDKプロファイリングを行っています。次のように私は私が( "itv.so")monstartupと呼ばれている...次のようにApplication.mkがある ".soにはシンボルがありません"というNDKプロファイリング

...

APP_ABI := armeabi 
APP_PLATFORM := android-10 

LOCAL_PATH := $(call my-dir) 
-include android-ndk-profiler.mk 
include $(CLEAR_VARS) 

# Module name ------------------------------------------------------- 
LOCAL_CFLAGS += -O3 
TARGET_ARCH_ABI :=armeabi 
LOCAL_CFLAGS := -pg 
LOCAL_STATIC_LIBRARIES := andprof 
LOCAL_LDLIBS += -llog 
LOCAL_MODULE := libitv 

include $(BUILD_SHARED_LIBRARY) 
をAndroid.mkの変更を行いました。ネイティブコードの先頭にある関数moncleanup()。 stopメソッドの関数gmon.outファイルは正常に作成されています。そして、gmon.outを貼り付けた D:\ android-android-ndk-r6-windows \ android-ndk-r6 \ toolchains \ arm-linux-androideabi-4.4.3 \ prebuilt \ windows \ binディレクトリにあります。

しかし、私は、次のコマンドを使用してのgmon.out読みしようとしています...

D:\android\android-ndk-r6-windows\android-ndk-r6\toolchains\arm-linux-androideab 
i-4.4.3\prebuilt\windows\bin>arm-linux-androideabi-gprof D:\InternetTV_FD_Canvas 
\libs\armeabi\libitv.so > out.txt 

このエラーは

arm-linux-androideabi-gprof: file `D:\InternetTV_FD_Canvas\libs\armeabi\libitv.so' 
has no symbols 

...見せている私が作ることができないのですなぜこのエラーが起こっても、私はすべてうまくやった。

誰でも助けてください。

ご協力いただければ幸いです。

ありがとうございました。

答えて

6

NDKビルドプロセスでは、2つのライブラリが作成されます.1つはシンボルで、もう1つはストリップされません。ストリップされたシンボルレスライブラリをAPKにインストールしますが、gprofでストリップされていないバージョンを使用する必要があります。実行する場合:

arm-linux-androideabi-gprof D:\InternetTV_FD_Canvas\obj\local\armeabi\libitv.so 

...正しいライブラリにする必要があります。

+0

ご返信ありがとうございます...私はこれを認識していませんでした。今私の問題は解決されました。 :) – geeta