Не удалось извлечь каталог данных пакета. Вы уверены, что установленное приложение отлаживается?

Я использую eclipse для отладки моего приложения для Android, у которого есть собственный собственный код.

Когда я подключаю свой nexsus4, работает внешний инструмент отладки ndk.

Когда я подключаю галактику note2, она бросает следующую ошибку при попытке подключиться к устройству:

Android NDK installation path: /Users/eladb/MyWorkspace/android-ndk-r8b Using specific adb command: /Users/eladb/MyWorkspace/sdk/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.31 Using ADB flags: Using auto-detected project path: . Found package name: com.myPack ABIs targetted by application: armeabi Device API Level: 18 Device CPU ABIs: armeabi-v7a armeabi Compatible device ABI: armeabi Using gdb setup init: ./libs/armeabi/gdb.setup Using toolchain prefix: /Users/eladb/MyWorkspace/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi- Using app out directory: ./obj/local/armeabi Found debuggable flag: true Found device gdbserver: /data/data/com.myPack/lib/gdbserver ERROR: Could not extract package's data directory. Are you sure that your installed application is debuggable? 

Я включил параметры разработчиков

И разрешенная отладка устройства через usb

Он не работает для моей галактики Samsung2 (Android 4.3), но работает для nexsus4 (4.2)

Я думаю, что это известная проблема ?

Но как это сделать?

Это проблема с Android 4.3 в целом. Взгляните на проблему 59558 с отслеживанием ошибок Android, которая, в свою очередь, связывается с корнем проблемы, которая запускается, как и borked. ( 58373 ) Я не уверен, когда / если Note 2 получает 4.4, поэтому вы можете посмотреть, сможете ли вы вернуться к 4.1.2.

В моем случае я укрепил свое устройство Android 2.3 и изменил оболочку по умолчанию на bash, что вызвало проблемы, когда ndk-gdb попытался запустить команду оболочки.

 sh-3.2$ ls -l /system/bin/sh* lrwxrwxrwx root root 2014-02-01 10:26 sh -> bash -rwsr-xr-x root shell 82840 2011-09-30 18:55 sh0 sh-3.2$ 

Это привело к тому, что скрипт android r9 ndk-gdb прервался с ошибкой «Не удалось извлечь каталог данных пакета ..».

Сначала создайте резервную копию своего ndk-gdb-скрипта. Затем, около строки 615 ndk-gdb, выполните следующие изменения:

 # Find the <dataDir> of the package on the device # on my rooted Android 2.3 device, the default sh has actually been renamed to sh0 # so try that first. adb_var_shell2 DATA_DIR run-as $PACKAGE_NAME /system/bin/sh0 -c pwd # <-- insert this line if [ $? != 0 ] # <-- insert this line then # <-- insert this line adb_var_shell2 DATA_DIR run-as $PACKAGE_NAME /system/bin/sh -c pwd if [ $? != 0 -o -z "$DATA_DIR" ] ; then echo "ERROR: Could not extract package's data directory. Are you sure that" echo " your installed application is debuggable?" exit 1 fi fi # <-- insert this line 

В основном, он попытается сначала использовать / system / bin / sh0. Если файл не существует, тогда он попытается / system / bin / sh. Я тестировал только / system / bin / sh0 до сих пор, поэтому YMMV ..

Это происходит из-за двух известных ошибок, связанных с инструментом run-as. Инструмент должен прочитать информацию о вашем приложении из файла /data/system/packages.list внутри вашего устройства Android. В случае первой ошибки инструмент фактически считывает только первые 8 Кбайт файла. Таким образом, если строка, содержащая описание вашего приложения, ниже первого 8 КБ, run-as завершится с ошибкой. Вторая ошибка затрагивает некоторые 4.2.2 и 4.3 изображения Android, ложно ограничивая права на чтение файла packages.list, который содержит все имена пакетов.

Решение здесь: http://visualgdb.com/KB/?ProblemID=nopkg