私は長い間このネイティブ アプリケーションを (Mac 端末から) 正常にビルドしてきましたが、今日、特定できないエラーに遭遇しました。すべての javac 警告に疲れた後、新しいバージョンの ant にアップグレードしました。関連があるかどうかはわかりませんが、タイミングが疑わしいです。アプリケーションをビルド、デプロイ、実行することはできますが、ndk-gdb を使用してアプリケーションのネイティブ部分をデバッグすることはできなくなりました。調べてみると、gdb.setup ファイルがデバッグ apk に追加されていないようです。
ここでは、ビルド シーケンス、省略された出力、および情報を示します。問題を解決する方法についての提案を探しています。
NDK ビルドと ant ビルドの両方を完全にクリーンアップしました
Android NDK のバージョンと Android SDK のバージョンはすべて最新です。私は、android studio sdk ツールが読み込まれる組み込みの ndk-bundle を使用します。
私たちが開発するデバイスはルート化されておらず、オプションではありません。
hsmith$ java -version Java バージョン "1.8.0_45"
Java(TM) SE ランタイム環境 (ビルド 1.8.0_45-b14) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 25.45-b02、混合モード)
hsmith$ $ANT_HOME
-bash: /Users/hsmith/dk/ant/apache-ant-1.9.6: ディレクトリです
hsmith$ ndk-build -j4 NDK_DEBUG=1
[armebi-v7a] Gdbserver : [arm-linux-androideabi-4.8] libs//gdbserver
[armebi-v7a] Gdbsetup : libs//gdb.setup
[armebi-v7a] インストール: lib1.so => libs/armebi-v7a/lib1.so
[armebi-v7a] インストール: lib2.so => libs/armebi-v7a/lib2.so
[armebi-v7a] インストール: lib3.so => libs/armebi-v7a/lib3.so
hsmith$ ant debug … -package: [apkbuilder] 変更された入力ファイルが見つかりました
[apkbuilder] -debug-unaligned.apk を作成し、デバッグ キーで署名します...
-ポストパッケージ:
-do-debug:
[zipalign] 最終的な APK で zip align を実行しています...
[echo] Debug Package: /Users/hsmith/packageFolder/bin/<package>-debug.apk
[propertyfile] プロパティ ファイルを更新中: /Users/hsmith/packageFolder/bin/build.prop
[propertyfile] プロパティ ファイルを更新中: /Users/hsmith/packageFolder/bin/build.prop
[propertyfile] プロパティ ファイルを更新中: /Users/hsmith/packageFolder/bin/build.prop
[propertyfile] プロパティ ファイルを更新中: /Users/hsmith/packageFolder/bin/build.prop
-ビルド後:
デバッグ:
ビルド成功
hsmith$ adb install -r ~/packageFolder/bin/-debug.apk
hsmith$ ndk-gdb adb --start
エラー: パッケージはデバッグできません! これは、次の 2 つの方法で修正できます。
「ndk-build」を呼び出すときに NDK_DEBUG=1 オプションを使用して再構築しました。
マニフェストを変更して android:debuggable 属性を「true」に設定します。
その後、正常に再構築します。
これらのいずれかの後、デバイスに再インストールしてください。
apkファイルを解凍して見つけました
解凍したapkファイル/lib/target/
hsmith$ ls -la
合計 48264
drwxr-xr-x 12 hsmith スタッフ 408 8 月 25 日 14:50 。
drwxr-xr-x 5 hsmith スタッフ 170 8 月 25 日 14:50 ..
-rwxr-xr-x 1 hsmith スタッフ 409940 6 月 3 日 11:47 gdbserver
-rwxr-xr-x 1 hsmith スタッフ 33920 8 月 25 日 14:44 lib1.so
-rwxr-xr-x 1 hsmith スタッフ 165092 8 月 25 日 14:44 lib2.so
-rwxr-xr-x 1 hsmith スタッフ 1614028 8 月 25 日 14:44 lib3.so
gdb.setup ファイルがないことに注意してください
マニフェストでは debuggable=true を使用しません。これは不要になったためですが、含めても結果には影響しません。
更新: https://code.google.com/p/android/issues/detail?id=183455 これはまさに私が抱えている問題です。ターゲット ディレクトリから ./lib ディレクトリにターゲット gdb.setup ファイルをコピーすると、ndk-gdb を動作させることができます。ndk-gdb の COMPAT_ABI 変数が正しく設定されておらず、スクリプトがスピンに送られています。彼らがこれをすぐに修正することを願っています。壊れたツール チェーンでほぼ 3 日が無駄になりました。