adb root
ничего не решает, в зависимости от окружающей среды существует множество проблем. Вот как я работал над эмулятором, где трачу много времени на разработку.
Сначала нам нужно устранить ошибку only position independent executables (PIE) are supported
с двоичным кодом.
получить источник андроида окончательного инструмента плагина:
git clone https://android.googlesource.com/platform/tools/adt/idea
cd idea/android/ultimate/get_modification_time/jni
Применить следующий патч:
diff --git a/android/ultimate/get_modification_time/jni/Application.mk b/android/ultimate/get_modification_time/jni/Application.mk
index a252a72..bdf815d 100644
--- a/android/ultimate/get_modification_time/jni/Application.mk
+++ b/android/ultimate/get_modification_time/jni/Application.mk
@@ -1 +1,2 @@
APP_ABI := all
+APP_PLATFORM := android-16
Вам нужно установить последнюю версию NDK строить, я имел ndk- r10d уже установлен.
# ndk-r10d
ndk-build
cd ..
cp -R libs native_tools
# update the intellij plugin with whatever arch you plan to use
# adjust the path here to where your copy of IntelliJ is located
zip -u ~/local/apps/idea/plugins/android/lib/android-ultimate.jar native_tools/*/get_modification_time
Обратите внимание, что вам необходимо обновить путь в этой последней строке, чтобы указать на локальную установку IntelliJ. Например, на MacOS это будет:
zip -u /Applications/IntelliJ\ IDEA\ 14.app/Contents/plugins/android/lib/android-ultimate.jar native_tools/*/get_modification_time
Restart IntelliJ.
Далее мы будем заменять /system/bin/run-as
на эмулятор. Создайте следующий сценарий локально и назовите его run-as
.
#! /system/bin/sh
INTELLIJ_NATIVE="/data/local/tmp/intellij_native_tools/get_modification_time"
if [ "$2" = "$INTELLIJ_NATIVE" ]; then
cd /data/local/tmp/intellij_native_tools
./get_modification_time "$3"
else
/system/bin/run-as.org "[email protected]"
fi
Запустить эмулятор. После его загрузки обновите его.
# update run-as after start
adb shell mount -o remount,rw /system
adb shell mv /system/bin/run-as /system/bin/run-as.org
adb push ./run-as /system/bin/run-as
Теперь вы можете синхронизировать содержимое вашего сердца.
Обратите внимание, вы также можете следить за ходом на жука вверх по течению, который только что приоритет задеть после размещения этого: https://youtrack.jetbrains.com/issue/IDEA-137606
Тот же вопрос здесь (идея 14,2/Ubuntu 14.4.64/Lollipop) –