• Уважаемый посетитель!!!
    Если Вы уже являетесь зарегистрированным участником проекта "миХей.ру - дискусcионный клуб",
    пожалуйста, восстановите свой пароль самостоятельно, либо свяжитесь с администратором через Телеграм.

Small tips for Android Projects with Maven starting on Windows. (Чтобы не забыть.)

  • Автор темы Автор темы Mice
  • Дата начала Дата начала

Mice

Почетный участник
SODD - StackOverflow Driven Development. (с) Из родного вконтактика.


В общем, пока мой мак от меня временно уехал, решила я освоить поставленный мне больше полугода назад и шибко мощный, судя по причмокивающему жесту админа, виндовый комп. (Не спрашивайте, почему до этого я разворачивала девелопмент под андроид на маке. Знаю, изврат. Ну-с, может, я в этом толк знаю? :rolleyes:).

Думаю, что сам процесс и последовательность шагов с перечнем всего необходимого для развертывания андроид проектов на мавене в абсолютно любой ОС никого не заинтересует (в общем как и весь этот пост), да и при сильном желании нагуглить можно все, что угодно.

Но меня сегодня весь день плющит от некоторых мыслей, которые я хочу оставить и здесь тоже. Частично потому, что таким образом я буду косвенно ругаться на винду. Частично просто.. мало ли кто тут ходит.

Данные подсказки и мысли собраны здесь для того, чтобы уберечь меня и случайного читателя от долгого, бессмысленного и беспощадного гугленья в поисках решения несуществующих проблем. В общем, большая часть написанного итак очевидна и понятна любому адекватному человеку, но тем не менее иногда почему-то не выполняется, и люди путаются в странных непонятных ошибках, находят жуткие решения, пугаются и не знают что предпринять. А ларчик зачастую открывается просто и легко.

Итак, Аня, если ты еще раз соберешься заниматься всякой дуростью, помни пару моментов.

1. Храним верность шестой Жабе. (Этот пункт еще может будет неактуален)
Я понимаю, седьмая-последняя это круто. Но андроид-проекты все же пока стоит собирать шестой. На всякий случай. У меня в итоге стоят обе, в качестве jdk для конкретного проекта указана шестая, а вот в виндовой консоли работает седьмая версия (JAVA_HOME указывает на седьмую). На всякий случай.

2. Работаем под рутом. (печаль-беда)
В Винде это называется Run as Administrator (вызывается из контекстного меню правой кнопкой, надеюсь, все в курсе). Именно запуск под админом заставил мою студию все же увидеть собственную-скаченную сдк. И именно это простое действие заставило мой Мавен в итоге заработать как надо, а не как идиот :)
И, кстати, помните, что КОНСОЛЬ ТОЖЕ МОЖНО ЗАПУСТИТЬ ПОД АДМИНОМ! Это вообще первое, что нужно сделать, когда что-то вдруг начинает ломаться

3. Не забываем догружать драйвера.

Опять же. Может, мне сильно повезло - под макосом я не качала драйверов ни под один девайс. У меня все распознавалось. Само. Драйвера можно скачать через sdk, вместе с необходимыми апишками. Там снизу, в разделе extras. У меня были скачены (мне нужен был дефолтный гугловский)

4. Не забываем ставить драйвера.
Как по мне, делается это довольно хитро. С припереподвыподвертом, я бы сказала. Но нагугливается все элементарно. (А под маком все само становилось!!! Честно-честно!). Если девайс распознался - радуемся и пляшем.

5. Грузим мавен в диск С. (А в маке мавен уже есть!!!)

Вообще я где-то читала, что он должен лежат там по какому-то путии... не знаю.
Ошибок, связанных с этим, мне встретить не довелось, но предпочитаю, чтобы такая шибко кросплатформенная штука все же лежала в папке, путь к которой не содержит пробелов. Вот сердцу легче, чесслово. Я просто распаковала в диск, и мне не стыдно.

P.S. Мне тут "из-за спины" подсказали, что вроде как мавен вообще идет прямо со студией. Ну может быть, может быть, но не сносить же мне теперь свой! (Вот, кстати, интересно, а с каким я работала на маке? С тем, что уже стоял, или с тем, что пришел со студией? Стоял-то он до того, я проверяла. Значит, и переменные должны были быть.. а ладно пофигу)

6. Убедись, что все на месте.
Перед тем, как пытаться че-то делать, проверяем, установлены ли переменные среды:
JAVA_HOME (путь к жабе)
M2_HOME (путь к мавену)
M2 (%M2_HOME%\bin)
ANDROID_HOME (путь к android-sdk)
Ах, да.. в Path еще из этого нужно добавить m2 и путь к бинам жабы. (Так, вроде ничего не забыла)

7. Если студия не запустилась
Если Android-studio не стартует из меню пуск, нужно попробовать открыть ее из папки. Вообще лучше всегда открывать ее из папки. И под рутом. Да.


8. Если студия не видит SDK по правильному пути

Закрываем студию и запускаем ее под админом. И больше не забываем. )))


9. Не забываем настроить гитхаб

Лучше сделать это сразу и проверить соединение. Чтобы потом не думать. А, в принципе, можно и из консоли гонять.. (под рутом! :))

10. Основное. java.util.zip.ZipException: invalid LOC header (bad signature)
Если после написания первого теста и попытки запуска этого дела как maven project в студии (mvn clean install, mvn test и.т.д. в консоли) вдруг вылезла такая бяка, то первое и самое правильное - это не гуглить и радоваться, что, оказывается, еще куча народу наступала на эти же грабли и что-то не видно особо решений, а... удалить папку M2.
Папка находится по адресу С:\Имя_пользователя\ (по крайней мере у меня там лежала). Я долбанула ее всю, хотя наверное можно было попытаться там поковыряться. После этого нужно запустить все еще раз.
Суть в том, что, скорее всего, мавенчик почему-то неудачно скачал какой-то там файл, ну и.. вот теперь сам же хрипит, задыхается, а сделать ничего не может. После удаления папки он его перекачает (вместе с тучей всего остального), и заработает как надо.
В процессе поиска решения по этой ошибке я видела где-то робкую фразу об удалении папки, но она тонула за тучей пустых разговоров и предложений потрогать pom.xml. Который трогать вовсе не нужно.

Собственно, все. Пока что. Может, я завтра с утра еще что вспомню?

З.Ы. Насчет эпиграфа. В комментах к нему кто-то высказался, что у большинства на самом деле происходит ADD (Ass Driven Development). :lol: Хм.. печально, но стоит задуматься.

UPD. Кстати насчет рутов. Это ведь чтобы писать в папки на диске С нужны какие-то права.. мне тут закралась крамольная мысль, что если бы я все эти дела ставила на диск Д? Впрочем, студия сама на С становится... но мысль интересная. Если кто проверял, скажите!
 
Но читается-то хоть легко? :) Я так старалась сдобрить текст парой шуток..хм.. правда.. возможно, не все поняли, что они там были.. ох. :o
 
Все легко и с юмором :) Смеялся до слез)
Из текста понял, что "под админом" все кашерно)
А вообще надеялся на ответ. - Аналогично, шеф! :lol:
 
GEnm, А вот я когда с этим всем возилась, коллеги в конце дня выдали: "Оказывается, Аня так прикольно ругается матом.." :D
Короче я не очень много смеялась.

Аналогично в каком смысле? Не, мне тут все понятно. Вроде как! :)
 
бгг! интересно, как бы ты материлась ежели бы у тебя десктопом фря стояла))) там бы еще, небось, эмуляцию линуха пришлось бы поднимать и прочие радости. да и жаба там, насколько мне не изменяет склероз, ставится тоже как-то весело и с бубном))))))
а насчет установки на D, то если в проге жестко не прописано, что она будет работать только на Ц, то она должна пахать где угодно. так что МНТ в помошь!)))
з.ы. я не тормоз, до меня просто медленно доходит!)))
 
Последнее редактирование:
Gor, У меня не стоит фряха, и, думаю, это все же в данном случае было бы излишне. Ну а зачем, в самом деле, зачем устраивать танцы, если можно все нормально настроить? Работа программиста она ведь не в настройке. Напротив. Это - самая дурная часть работы.

Хотя у нас есть ребята которые под линухом пишут и норм. Но мне все же нужен мак, так как писать нужно как под андроид, так и под айос.
Ниче, скоро ко мне приедет новый мак с огромным количеством оперативки и вот тогда-то все опять будет окей. Потому что на старом извините было просто невозможно - маломощный он был, тормозило все как я не знаю.

З.Ы. никто и не говорит, что ты тормоз ))
 
Mice написал(а):
Ну а зачем, в самом деле, зачем устраивать танцы, если можно все нормально настроить?
есть джедаи в далекой-предалекой галактике которым, ежели не потанцОвал с бубном, значит жизнь потеряла смыслЪ...

Mice написал(а):
З.Ы. никто и не говорит, что ты тормоз ))
1. ты нам не скажи за всю Одессу... )))
2. это я так, скорее для себя... эдакое самоутверждение на уровне аутотренинга)))
 
Кстати, оказалось, что я сильно ошиблась, когда утверждала что драйвера можно скачать в разделе экстрас. Кое-что придется выкачивать вообще непонятно откуда.. так что извиняюсь :)


Gor, Знаю парочку таких Джедаев! Милые ребята кстати. Кстати, у нас есть в компании маленький и очень классный бубен. Мне нравится. :)
 
Эх жаль я не умею пока андроид приложений писать. Скажи пожалуйста а какие слои/компоненты/классы используются для монетизации? Они делаются в отдельном слое от ресурсов или функций? Если в отдельном, значит любой может открыть приложение через архиватор, или я не знаю, через кухню и удалить компоненты отвечающие за монетизацию.

И другой вопрос: вот допустим я сделала бесплатное приложение зарабатывающее на рекламе. Куда засунуть рекламу, чтобы ее не блокировали adblock'и, firewall'ы и не открутить так сразу с помощью кухни?

И самое главное: как раскрутить приложение чтобы его скачивали и не потратиться на рекламу?
 
Как-то мне в последнее время не очень нравится работать филиалом гугла, так что, как говорится, буду краток.

как раскрутить приложение чтобы его скачивали и не потратиться на рекламу?
А я тут, в общем, каким боком? Это к маркетологам. Хотя я не думаю, что они так уж и не тратятся на рекламу. Хотя я не знаю.

ь. Скажи пожалуйста а какие слои/компоненты/классы используются для монетизации? Они делаются в отдельном слое от ресурсов или функций?Если в отдельном, значит любой может открыть приложение через архиватор, или я не знаю, через кухню и удалить компоненты отвечающие за монетизацию.
На официальном сайте все есть же.
И про обфускацию, кстати, тоже..
И гугл, думаю, тоже не дурак чего подсказать.

А вообще мы-то понимаем, что все равно все взламывают. Куча ломаного софта кругом стоит, а ты сомневаешься.
 
Извини, что затрудняю, я же не варюсь в этом. Не представляю даже можно ли нормально заработать на андроид-приложениях. Тем более много бесплатных приложений конкурентных. Свое нужно раскручивать, чтобы его хотя бы поставили.
 
Ничего страшного )) Если действительно есть что спросить - можно спрашивать. Просто если информация уже есть в сети - не вижу смысла пересказывать ее второй раз, да еще и не полностью. Тем более, когда ты только пришел домой с работы над тем же самым андроидом, и тебе еще надо устроить ночной ресерч по одному важному вопросу. В общем, извиняй за краткость.

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

А вообще, наверное, все-таки прибыль есть. Раз есть работа :)
 
В качестве планового апдейта к посту скажу, что давным-давно собираю проекты на седьмой жабе (которая теперь официательно поддерживается андроидом), и делаю это либо эклипсом, либо грэдлом, встроенным в Андроид Студию
 
Назад
Сверху