のねのBlog

パソコンやソフト開発で起きた問題など書きます。よろしくお願いします。

Android-Ndk

ndk 64bit

Androidでの話です。 ARMの64ビット用にビルドする方法を調べました。arm64-v8aをApplication.mkへ追加すればいいようです。 android-ndk-r10dのdocsのABI Management file:///D:/android-ndk-r10d/docs/Programmers_Guide/html/md_3__key__topics__c_p_u__s…

Failed adding to JNI pinned array ref table

ReferenceTable overflow (max=512) JNI

ndk-buildが動かない。

パスは通してあるけど、エラーになる。 **** Build of configuration Default for project LsFontViewer **** D:\android-ndk-r9d\ndk-build V=1 NDK_DEBUG=1 Cannot run program "D:\android-ndk-r9d\ndk-build": Launching failed Error: Program "D:/andr…

builtin_trap

buildin_trap()を呼ぶサンプル(hello.c)を作成し、 ndk-buildでビルドした。 SIGABRTになった。 #include <stdio.h> int main(int argc, char *argv[]) { printf("start\n"); __builtin_trap(); printf ("end\n"); return 0 ; } 01-14 03:08:18.122: A/libc(15262): F</stdio.h>…

request for member 'DeleteLocalRef' in something not a structure or union

この処理は、ReferenceTable overflow に対しては、必要なかった。修正前 env->DeleteLocalRef(value);修正後 (*env)->DeleteLocalRef(env ,value);DeleteLocalRefをしようとすると、以下のエラーが出て終了する。 is not a valid JNI reference

ReferenceTable overflow (max=1024)

異常処理の時、メモリを解放していなかった。 01-30 15:32:24.508: W/dalvikvm(18926): ReferenceTable overflow (max=1024) 01-30 15:32:24.508: W/dalvikvm(18926): JNI pinned array reference table (0x41c9f5a0) dump: 01-30 15:32:24.508: W/dalvikvm(…

unresolved inclusion

RIght Click on Project Head -> Properties -> C++ General -> Paths And Symbols Add a path similar to this under GNU and GNUC++ Language Entries /NDK/Platforms/Android-14/arch-arm/usr/include Source LocationへLinkFolderで設定した。 Folder na…

一つの共有ライブラリを、複数のアプリで使用する方法

($NDK_ROOT)\docs\PREBUILTS.htmlより引用 NDK Prebuilt library support: ----------------------------- Android NDK r5 introduced support for prebuilt libraries (shared and static), i.e. the ability to include and use, in your applications, pr…

死んでいる場所(pvrANDROID_WSEGL)

09-17 17:42:49.023: I/DEBUG(121): backtrace: 09-17 17:42:49.023: I/DEBUG(121): #00 pc 000014e8 /system/vendor/lib/libpvrANDROID_WSEGL.so 09-17 17:42:49.023: I/DEBUG(121): #01 pc 0000b4c8 /system/vendor/lib/libsrv_um.so SGXDevInitPart2+0x98…

NDK location not valid in preferences.

NDKのフォルダの位置が設定されていなかった。Problem setting up native development in Eclipse - Google グループ

Dynamic LibraryでSymbolがStripされているか確認する方法

ストリップされていない。 $ cd ./obj/local/libs/armeabi-v7a $ file libMyLib.so libMyLib.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped ストリップされている。 $ cd ./libs/armeabi-v7a $ file libMyLib…

shared library handler failed to enable breakpoint

以下のようなことをやってみたけど、解決しなかった。 shared library handler failed to enable breakpoint これを D:\android-ndk-r7b\build\core\build-binary.mk(357): $(LOCAL_INSTALLED): $(LOCAL_BUILT_MODULE) clean-installed-binaries @$(HOST_ECH…

android C言語 ndk-gdbデバッグ方法のまとめ  How to debug Android C with ndk-gdb

Eclipseでandroid-ndk-r6のJNIをgdbを使ってデバッグする方法 - DRY(日本やアメリカで働くエンジニア日記) How C/C++ Debugging Works on Android | Android blog Using Eclipse for Android C/C++ Debugging | Android blog Sequoyah Project Androidでネ…

Cannot access memory at address 0x1

Cannot access memory at address 0x1

手動でgdb

$ ndk-gdb --verbose サーチパスがセットされていても、シンボルが読み込めていない。 (gdb) show solib-search-path .he search path for loading non-absolute shared library symbol files is ./obj/local/armeabi シンボルが読み込めていないときの例 (g…

Sequoyah

同僚に教えてもらったページ。 Androidでネイティブデバッグ(実機でデバッグも) -その1- プロジェクトの右クリック>Android Tools>Add Native Supportが出てこない プロジェクトを1から作り直したら出てきた。 Creating your first Android JNI/NDK Proj…

gdbで"No symbol table is loaded."

*.soのフォルダ位置を確認する。 (gdb) shell ls AndroidManifest.xml assets bin gen jni libs res src (gdb) shell ls ./obj convert-dependencies.sh local (gdb) shell ls ./obj/local armeabi armeabi-v7a (gdb) shell ls ./obj/local/armeabi-v7a app…

ndk-gdbのエラーと治し方

★エラー1 cp: `./libs/armeabi-v7a/gdb.setup' を stat できません: No such file or directory jni/obj/local/armeabi-v7a/gdb.setup:4: Error in sourced command file: Remote communication error: Bad file descriptor. 上のコピーがうまくいかないと…

echo

$GDBCLIENT -x `native_path $GDBSETUP` ECHO[/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-gdb -x obj/local/armeabi-v7a/gdb.setup] gdb -x obj/local/armeabi-v7a/gdb.setup

warning: shared library handler failed to enable breakpoint

warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code. warning: shared library handler failed to enable breakpoint

ndk-gdb Strip --strip-unneeded

Install : libLsEngine.so => libs/armeabi-v7a/libMyLib.so mkdir -p app/libs/armeabi-v7a install -p app/obj/local/armeabi-v7a/libMyLib.so app/libs/armeabi-v7a/libMyLib.so arm-linux-androideabi-strip --strip-unneeded app/libs/armeabi-v7a/libM…

APP_OPTIM

Application.mk APP_ABI := armeabi armeabi-v7a APP_OPTIM := debug #APP_OPTIM := release$(ANDROID_NDK_BASE)/build/core/add-application.mkifeq ($(APP_OPTIM),debug) APP_CFLAGS := -O0 -g $(APP_CFLAGS) else APP_CFLAGS := -O2 -DNDEBUG -g $(APP_CF…

signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 4092dafa

結局自分のライブラリ側の問題でした。 03-06 22:54:33.434: I/DEBUG(25943): Build fingerprint: 'docomo/SO-01C_1246-7916/SO-01C:2.3.3/3.0.1.F.0.126/gS_P:user/release-keys' 03-06 22:54:33.434: I/DEBUG(25943): pid: 31750, tid: 31750 >>> com.my.a…

Fatal signal 11 (SIGSEGV) at 0x4131400c (code=2)

2.3.3ではエラーにならないのに、 4.0.3のエミュレータで動かしたら、死んだ。 4.0.3なのでarmeabi-v7aのライブラリを見ればいいのかな?# cat /proc/cpuinfo cat cpuinfo Processor : ARMv7 Processor rev 0 (v7l) BogoMIPS : 466.94 Features : swp half t…

ndk-gdbでERROR: Could not extract package's data directory.

ndk-gdbを実行しようとしたら以下のエラーになり実行できなかった。 $ ndk-gdb --verbose Android NDK installation path: /home/user01/android-ndk-r7 Using default adb command: /cygdrive/d/android-sdk-windows_r16/platform-tools/adb ADB version fo…

EclipseでNDK(ndk-build)を使う方法 その3 うまくいってる設定

EclipseでNDK(ndk-build)を使う方法 その1 設定してみた編 EclipseでNDK(ndk-build)を使う方法 その2 はまった編 EclipseでNDK(ndk-build)を使う方法 その3 うまくいってる設定 Builderの設定 C/C++ Buildの設定 AndroidNDKネイティブプログラミング第2版…

EclipseでNDK(ndk-build)を使う方法 その2 はまった点

EclipseでNDK(ndk-build)を使う方法 その1 設定してみた編 EclipseでNDK(ndk-build)を使う方法 その2 はまった編 EclipseでNDK(ndk-build)を使う方法 その3 うまくいってる設定 EclipseでNDK(ndk-build)を使う方法 その1ではまった点。 Windowsの環境変数…

EclipseでNDK(ndk-build)を使う方法 その1 設定してみた編

EclipseでNDK(ndk-build)を使う方法 その1 設定してみた編 EclipseでNDK(ndk-build)を使う方法 その2 はまった編 EclipseでNDK(ndk-build)を使う方法 その3 うまくいってる設定 ke-16さんのEclipseCDTとandroid-ndk-r6のJNIをプロジェクト統合する方法" を…

NDKの関数名を作成する。

①javaのソースでnativeインタフェースを記述する。 ②javaのソースをビルドする。(binの中にclassファイルができること)③jniのフォルダで以下のバッチファイルを動かす。 ④com_example_none53_sample_SpeedActivityEx.h このヘッダーファイルをインクルード…

ライブラリのABIの確認

$ readelf -A libhoge.aFile: libhoge.a(hoge.o) Attribute Section: aeabi File Attributes Tag_CPU_name: "5TE" Tag_CPU_arch: v5TE Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-1 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exc…

ndkでのコンパイルオプションをみたいとき

ndk-build -n で見れる。

ndk-build

コンパイルオプションを見たいとき ndk-build -n

ndk-build -n

ndk-build -nでコンパイルオプションなど詳細がみれる。

ndk-buildでinclude $(BUILD_STATIC_LIBRARY)を指定するとコンパイルが動かない

ndk-r7で起こった。 Application.mkにAPP_MODULESを書けばコンパイルしだした。 include $(BUILD_STATIC_LIBRARY)がバグってる

cygwinのndk-buildでNULファイルができる

どうにかできないかな? cygwinのbashで消せば消える。 rm ./NUL ndk-buildでNULファイルができるのは、 build/core/init.mkファイルを修正すると治る。 ~/android-ndk-r7/build/core --- init.mk.org 2012-02-21 16:31:27.756223600 +0900 +++ init.mk 2012…

buildスクリプト

./buildの中身は以下のシェルスクリプト #!/bin/sh ndk-build -B 2>&1 | tee build.log

ndk-buildでエラー Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !

$ ndk-build D:\cygwin\home\m_fujii\android-ndk-r7\prebuilt\windows\bin\awk.exe: can't open file /home/m_fujii/android-ndk-r7/build/awk/check-awk.awk source line number 1 source file /home/m_fujii/android-ndk-r7/build/awk/check-awk.awk cont…

Android NDK r7 インストール

1:Android SDKを最新のバージョンへ更新する。 Before you get started make sure that you have downloaded the latest Android SDK and upgraded your applications and environment as needed. 2:android-ndk-r7-windows.zipをダウンロードする。 (And…

Android NDK

2011/01にr5bが出ていた。 Android NDK | Android DevelopersD:\cygwin\home\usernameの下にandroid-ndk-r5b-windows.zipを展開した。cygwinの~/.bashrcのPATHを変更した。 export ANDROID_NDK_ROOT=/home/username/android-ndk-r5b export PATH=/android/bi…

C言語のソースを変えた後、ndk-buildして、Androidに反映させるにはどうするんだろ?

①C言語のソースを修正 ②ndk-build ③プロジェクトを一度クリーンにする。 ④デバッグの実行 ⑤①へ戻る。 この順番でやると、C言語の修正が反映される。 ほかにいいやり方があるのかな?

ndk-buildのやり方はこのページをみた。

Android NDKを使う(アプリの高速化) - Tech BoosterSaltさんのページ

ndk-build NDK_PROJECT_PATHはいらないのかな?

export NDK_PROJECT_PATH=/home/m_fujii/android-ndk-r4b export ANDROID_NDK_ROOT=/home/m_fujii/android-ndk-r4b export PATH=/android/bin:/home/m_fujii/android-ndk-r4b/:$PATH $ ndk-build Android NDK: Your APP_BUILD_SCRIPT points to an unknown f…