Подтвердить что ты не робот

"Неизвестное приложение ABI:" пока "отлаживается как собственное приложение",

У меня возникла такая проблема:

[2013-11-18 14:38:50 - HelloJni] Unknown Application ABI: 
[2013-11-18 14:38:50 - HelloJni] 
[2013-11-18 14:38:50 - HelloJni] Unable to detect application ABI's

Эта проблема возникает в каждом проекте, который я пытаюсь отлаживать как "родной". Я видел этот, этот и этот темы, но эти решения не принесли никакого эффекта в моем случае.

На другом компьютере или на виртуальной машине тот же проект работает с одинаковыми настройками.

манифеста

 ...
<uses-sdk 
    android:minSdkVersion="14"
    android:targetSdkVersion="14" />
<application android:label="@string/app_name"
             android:debuggable="true">
 ...

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
include $(BUILD_SHARED_LIBRARY)

Параметры Verison в Project также установлены на api-14.

Я также загрузил новую версию eclipse, sdk, ndk. Я очистил все системные переменные и элементы PATH. Моя машина работает под win7x64.

PS. Проблема возникает только в том случае, если я пытаюсь отлаживать, когда я ее строю и запускаю - она ​​отлично работает.

Edit1 это мой контур ndk-build DUMP_APP_ABI

c:\Users\Usr\workspace\HelloJni>D:\ndk\ndk-build.cmd DUMP_APP_ABI
armeabi

c:\Users\Usr\workspace\HelloJni>

Edit2 Важное уведомление. I'v попытался запустить debug as native на разных машинах со следующими шагами git clone → import to ide → Debug as native. Все машины имеют почти ту же конфигурацию (Win7 распространен для всех). Эта проблема была только на моем компьютере. Я попробовал разные IDE (eclipse + cdt, adt), очистил path, проверил окончания строки. Finnaly я решил разработать собственную часть кода под Linux. Это было мое решение. Кроме того, мне больше не нужно было cygwin перекрещивать некоторые библиотеки.

4b9b3361

Ответ 1

В Windows особенно это может быть связано с тем, что один из файлов (project.properties, Application.mk, Android.mk или AndroidManfest.xml) имеет неправильные окончания строк (CRLF). Вы запустите ndk-build DUMP_APP_ABI и убедитесь, что вывод чист.

Для этой цели необходимо отключить использование $(info …) или $(__ndk_info) и т.д.

Ответ 2

Когда eclipse печатает "Неизвестное приложение ABI"

Логика обнаружения ABI размещена в com.android.ide.eclipse.ndk плагин com.android.ide.eclipse.ndk.internal.NdkHelper. Фактически, он смотрит на вывод команды

make --no-print-dir -f $NDK_ROOT/build/core/build-local.mk -C $PROJECT_ROOT DUMP_APP_ABI

И если в выводе нет действительного ABI, вы увидите сообщение (или сообщения), например:

[$DATE $TIME - $PROJECT] Unknown Application ABI: 
[$DATE $TIME - $PROJECT] $ANY
[$DATE $TIME - $PROJECT] Unable to detect application ABI's

Как устранить эту проблему

Прежде всего запустите команду вручную

make --no-print-dir -f $NDK_ROOT/build/core/build-local.mk -C $PROJECT_ROOT DUMP_APP_ABI

Если вывод содержит ошибку, исправьте это раньше. Если эта команда работает правильно, она должна создавать ABI с пространственным разделением, например:

x86 armeabi

В моем случае у меня отсутствует переменная среды для GStreamer. Поэтому, чтобы исправить эту я указал переменную GSTREAMER_SDK_ROOT в файле Android.mk

Ответ 3

Я разрешил "Неизвестное приложение ABI", выполнив 3 вещи:

  • Заменены
    APP_ABI: = все
    по
    ABI: = armeabi
    в Application.mk

  • Добавлено
    APP_PLATFORM: = android-11
    к Application.mk

  • Запущенный эмулятор перед вызовом Debug As | Основное приложение для Android. Обычно Eclipse показывает "Android Device Chooser", если я вызываю Debug As и никакое устройство не подключено. Затем я могу запустить эмулятор. Но в плохом случае этого не произошло. Мне пришлось вызывать Windows | Диспетчер виртуальных устройств Android и убедитесь, что у меня настроен и запущен действительный эмулятор. Затем Debug As работал нормально, показал "Android Device Chooser" и выполнил на выбранном устройстве (либо эмулятора, либо реального). Эта проблема не была воспроизводимой: после того, как Eclipse начала отладку на эмуляторе, она еще не показала "Unknown Application ABI" даже после того, как я закрыл эмулятор. Также обратите внимание, что я подключил реальное устройство. Возможно, что связь с реальным устройством каким-то образом сломалась, и это вызвало ошибку.

Ответ 4

Проверьте файл Android.mk. Проблема может возникнуть, если вы печатаете некоторую информацию об отладке из Android.mk, как это.

$(info YOU_MESSAGE)

Ответ 5

Я столкнулся с той же проблемой: "Неизвестное приложение ABI:". И попробовал все возможные решения, даже хочу отформатировать мои окна. Наконец, я считаю, что TortoiseGit вызывает эту проблему. После удаления TortoiseGit "debug as native" работает очень хорошо.

Ответ 6

У меня тоже возникла эта проблема, и я потратил несколько часов, чтобы решить эту проблему в моей среде. После нескольких советов, собранных в Интернете, я пробовал последний вариант, который действительно работал, и это:

Eclipse или NDK (возможно) вмешиваются в двоичные файлы git. Проверьте, находится ли git в переменной окружения Path и удаляет ее оттуда (Компьютеp > Свойствa > Дополнительные системные параметры > Переменные среды)

Я считаю, что это решение может помочь некоторым людям.