Сегодня я столкнулся с той же проблемой, что и вы. Я также следил за упомянутым вами сообщением в блоге. Что бы ни. Рад сообщить вам: я исправил и нашел "решение"! ????
Самое смешное: решение настолько глупое, насколько простое. Единственное, что вам нужно сделать, это unset
(или удалить) переменную среды (или каталог) NDK.
Магическая линия:
- unset ANDROID_NDK_HOME
Это означает, что мой последний bitbucket-pipelines.yml
выглядит так:
image: uber/android-build-environment:latest
pipelines:
default:
- step:
script:
- unset ANDROID_NDK_HOME
- ./ci/accept_android_license.sh
- ./gradlew :app:testDebugUnitTest
Почему это устраняет проблему?
Если быть честным. Не знаю ????. Но я обнаружил, что uber
s android-build-environment
установить а> для тебя.
Я нашел несколько ответов - например, здесь - чтобы снова установить NDK отдельно. Но я подумал о следующем: какого черта я должен устанавливать / обновлять NDK, если мой проект его не использует? Поэтому я попытался удалить папку NDK (которая согласно Dockerfile находится по адресу /usr/local/android-ndk
) и все работает ????.
Почему тогда unset
ting?
Вы не можете удалить android-ndk
каталог, потому что у вас нет на это разрешения. Но вы можете удалить из него содержимое. Вот почему это сработало с rm -rf /usr/local/android-ndk
. Но затем - с настройкой ANDROID_NDK_HOME
, но без какого-либо содержимого вы получили сообщение об ошибке (при сборке):
./gradlew :app:testDebugUnitTest
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to /usr/local/android-ndk.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.
unset
переменная среды также исправляет это предупреждение.
Важно:
Очевидно, это не лучшее решение. Если ваше приложение использует NDK, это решение не поможет. Удаление некоторых переменных среды «из образа Docker» в CI
скрипте - тоже не лучшее решение. Возможно, позже образу понадобится переменная (не знаю, возможно ли это в Docker ... но вы понимаете, о чем я ????). Но это "временно" решит проблему, и, поскольку android-build-environment
не обслуживается (не обновляется уже год), я бы не стал прикладывать много усилий для исправления образа ...
Примечание. Ссылка на uber:android-build-environment
страницу GitHub относится к одной (в настоящее время последней) фиксации. Если кто-то прочитает это, в будущем ссылка все еще активна и верна, но, возможно, ветка master
изменилась.
person
StefMa
schedule
22.07.2017