Android Studio. Наработки и помощь в проблемах.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Android Studio. Наработки и помощь в проблемах.
Здравствуйте. Вот уже второй день работаю активно с этой IDE. Она, как и любая другая IDE, не лишена недостатков, о которых и хотелось бы поговорить. Возможно эта тема поможет кому-нибудь в дальнейшем, быстрее разобраться в каких-либо проблемах, потому как гугл пока не выдаёт решения проблем, ибо система еще девственная.
Не знаю, возможно в виде FAQ сделать тему. Видно будет по мере её развития.
1.Проблема: Windows - не запускается Android Studio.
Решение:
Windows 7 - В переменных среды прописать JDK_HOME
Windows xp - В переменных среды прописать JAVA_HOME
Хотя варианты решения должны быть универсальными в обоих ситуациях.
2. Проблема: не выставляется выбранная Android SDK. Android Studio всё равно указывает свою, с версией 4.2.2.
Решение: выставить после. Правым кликом по "проекты>open module settings>SDKs" , тут есть параметр Android SDK home path, который является ключом к дирректории SDK.
3. Проблема: Не запускается в Linux Android Studio. В описании указано зайти в папку ./bin/ и выполнить команду "./android studio.sh". Написано ошибочно.
Решение: Работает с "./studio.sh".
4. Проблема: Система контроля версий в Linux (как минимум Mercurial) не подтягивает проект.
Решение: не найдено. В Windows без проблем.
5. Проблема: Lint в Linux перестаёт работать. Было замечено после того, как запустил его в background.
Решение: Удалить все настройки AndroidStudio в скрытой папке в папке юзера. Более гуманного решения я не нашел.
P.S. пишите свои решения проблем, если вдруг нашли решение.
Не знаю, возможно в виде FAQ сделать тему. Видно будет по мере её развития.
1.Проблема: Windows - не запускается Android Studio.
Решение:
Windows 7 - В переменных среды прописать JDK_HOME
Windows xp - В переменных среды прописать JAVA_HOME
Хотя варианты решения должны быть универсальными в обоих ситуациях.
2. Проблема: не выставляется выбранная Android SDK. Android Studio всё равно указывает свою, с версией 4.2.2.
Решение: выставить после. Правым кликом по "проекты>open module settings>SDKs" , тут есть параметр Android SDK home path, который является ключом к дирректории SDK.
3. Проблема: Не запускается в Linux Android Studio. В описании указано зайти в папку ./bin/ и выполнить команду "./android studio.sh". Написано ошибочно.
Решение: Работает с "./studio.sh".
4. Проблема: Система контроля версий в Linux (как минимум Mercurial) не подтягивает проект.
Решение: не найдено. В Windows без проблем.
5. Проблема: Lint в Linux перестаёт работать. Было замечено после того, как запустил его в background.
Решение: Удалить все настройки AndroidStudio в скрытой папке в папке юзера. Более гуманного решения я не нашел.
P.S. пишите свои решения проблем, если вдруг нашли решение.
Последний раз редактировалось Mikhail_dev 17 май 2013, 21:16, всего редактировалось 1 раз.
Re: Android Studio. Наработки и помощь в проблемах.
пока что не столкнулся с проблемами, разве что не удобно и не привычно
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Android Studio. Наработки и помощь в проблемах.
Вот такая проблема: при создании нового проекта он создаёт Grandle, а внутри него собственно проект (с Grandle пока не разобрался), в проект модули добавляются и всё нормально, но при собрании проекта в Grandle уже ругается что нету (в моём случае Holo.Theme.Light из HoloEveryWhere) какого то модуля.
АП... смотрю по stackoverflow не у одного меня holoeverywhere не подключается в новом проекте, если старый импортировать то работает, если же создать новый и в нём подключить то уже нет
АП... смотрю по stackoverflow не у одного меня holoeverywhere не подключается в новом проекте, если старый импортировать то работает, если же создать новый и в нём подключить то уже нет
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Android Studio. Наработки и помощь в проблемах.
У меня тоже проблема с созданием проекта. Если импортировать, то все хорошо, а вот если создать с нуля, то создает только 4 drawable и все. Это на ноуте. А на компе все норм. Что только не делал-бесполезно. Думаю дело в Gradle. Если у кого такая трабла была, помогите решить.
Re: Android Studio. Наработки и помощь в проблемах.
Вот и я переехал на Android Studio.
Основная причина переезда проекта в другую среду, это наличие Грабли (сборщика gradle). Где-то после презентации гугла, я вычитал, что можно сделать сразу множественную сборку разных версий. но информации в интернете пока мало и готовых конфигов для сборки тоже.
Основные проблемы с которыми столкнулся:
1) Подключение внешних библиотек;
2) Смена кодировки в java файлах проекта (ну люблю я комментарии писать на русском для себя в коде);
3) Создание конфигов сборки для граблей (тут инфы кот наплакал, точнее мало примеров, пришлось по кусочкам разбираться).
Что получил на выходе:
В один большой проект у меня соединены два связанных между собой проекта, первый сама программа, а второй виджеты к программе отдельным apk. Используются 7 внешних библиотек, 2 из них в формате jar файлов, а остальные 5 в виде проектов. Все собирается "1" командой через консоль, а на выходе я получаю "10" полностью собранных и подписанных apk для пяти разных магазинов приложений.
Основная причина переезда проекта в другую среду, это наличие Грабли (сборщика gradle). Где-то после презентации гугла, я вычитал, что можно сделать сразу множественную сборку разных версий. но информации в интернете пока мало и готовых конфигов для сборки тоже.
Основные проблемы с которыми столкнулся:
1) Подключение внешних библиотек;
2) Смена кодировки в java файлах проекта (ну люблю я комментарии писать на русском для себя в коде);
3) Создание конфигов сборки для граблей (тут инфы кот наплакал, точнее мало примеров, пришлось по кусочкам разбираться).
Что получил на выходе:
В один большой проект у меня соединены два связанных между собой проекта, первый сама программа, а второй виджеты к программе отдельным apk. Используются 7 внешних библиотек, 2 из них в формате jar файлов, а остальные 5 в виде проектов. Все собирается "1" командой через консоль, а на выходе я получаю "10" полностью собранных и подписанных apk для пяти разных магазинов приложений.
Re: Android Studio. Наработки и помощь в проблемах.
Привет, нужна помощь знатоков.
Не могу подключить шерлок в андроид студии:
build.gradle - проекта
build.gradle - шерлок
SherlockTestProject\SherlockTest\libraries\ActionBarSherlock\actionbarsherlock -тут лежит шерлок
setting: include ':SherlockTest', ':libraries:ActionBarSherlock:actionbarsherlock'
импорт шерлоку сделал.
шерлок в проекте виден, но при билде видает:
Не могу подключить шерлок в андроид студии:
build.gradle - проекта
Код: Выделить всё
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
dependencies {
compile project(':libraries:ActionBarSherlock:actionbarsherlock')
}
Код: Выделить всё
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
setting: include ':SherlockTest', ':libraries:ActionBarSherlock:actionbarsherlock'
импорт шерлоку сделал.
шерлок в проекте виден, но при билде видает:
Знаю что что-то мелочное, не могу понять что.Gradle: A problem occurred configuring project ':SherlockTest'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Android Studio. Наработки и помощь в проблемах.
Если проект еще не включает шерлок, то и не стоит его использовать, так как появился ActionBar для версий<3 от самого гугла в виде support либы. Как подключить его к AndroidStudio - тут
Re: Android Studio. Наработки и помощь в проблемах.
Спасибо за ссылку. Но я уже разобрался с [url http://tools.android.com/tech-docs/new- ... y-projects] Gradle[/url]no-- писал(а):Если проект еще не включает шерлок, то и не стоит его использовать, так как появился ActionBar для версий<3 от самого гугла в виде support либы. Как подключить его к AndroidStudio - [url http://habrahabr.ru/post/189680/]тут[/url]
Re: Android Studio. Наработки и помощь в проблемах.
Привет. Проблемы с подключением внешних библиотек. С подключением jar библиотеки вопрос решил, а вот проектную уже день подключить не могу.
Сначала опишу процесс подключения jar библиотеки (android-async-http-1.4.3.jar) в android studio
1) создаем папку libs (если нету) на одном уровне иерархии с папкой src
2) помещаем в папку libs файл jar библиотеки
3) правой кнопкой мыши по файлу библиотеки --> Add as Library... --> Ok
Теперь при написании кода у нас есть доступ к библиотеке, но если мы попробуем скомпилировать проект, то получим ошибку:
Gradle: error: package com.loopj.android.http does not exist
4) Решил таким образом: добавляем в файл build.gradle следующий код:
[syntax=java]dependencies{
compile files('libs/android-async-http-1.4.3.jar')
}[/syntax]
Сначала опишу процесс подключения jar библиотеки (android-async-http-1.4.3.jar) в android studio
1) создаем папку libs (если нету) на одном уровне иерархии с папкой src
2) помещаем в папку libs файл jar библиотеки
3) правой кнопкой мыши по файлу библиотеки --> Add as Library... --> Ok
Теперь при написании кода у нас есть доступ к библиотеке, но если мы попробуем скомпилировать проект, то получим ошибку:
Gradle: error: package com.loopj.android.http does not exist
4) Решил таким образом: добавляем в файл build.gradle следующий код:
[syntax=java]dependencies{
compile files('libs/android-async-http-1.4.3.jar')
}[/syntax]
Re: Android Studio. Наработки и помощь в проблемах.
А вот по вопросу подключения проектной библиотеки разобраться не могу. Вообще не разу не подключал проектные библиотеки.
Библиотека ActionBar-PullToRefresh (https://github.com/chrisbanes/ActionBar-PullToRefresh)
Путем проб и ошибок удалось добиться только доступности библиотеки из кода, и все той же ошибки компиляции:
Последовательность действий, которая привела меня к такому результату:
1) импорт проекта библиотеки в IDEA (в android studio не получилось, но после импорта в IDEA проект библиотеки открывается в android studio)
2) помещение папки библиотеки в все ту же папку libs
3) в контекстном меню пункта Ad as library для папки библиотеки не высвечивается, поэтому жму правой кнопкой по проекту --> Open Module Settings -->
Выбираю папку библиотеки, жму Ок, открывается следующее окно:
Опять жму Ок, затем следующее окно
опять жму Ок, и вот она здесь:
Жму Ок, папка библиотеки в деректории libs помечается как library home
Библиатека импортируется и доступна из кода, но при компиляции все та же Gradle: error: package * does not exist
Но что в данном случае добавить в build.gradle ? не могу понять, может я вообще с самого начала не правильно делаю? Буду очень признателен за помощь.
Библиотека ActionBar-PullToRefresh (https://github.com/chrisbanes/ActionBar-PullToRefresh)
Путем проб и ошибок удалось добиться только доступности библиотеки из кода, и все той же ошибки компиляции:
Последовательность действий, которая привела меня к такому результату:
1) импорт проекта библиотеки в IDEA (в android studio не получилось, но после импорта в IDEA проект библиотеки открывается в android studio)
2) помещение папки библиотеки в все ту же папку libs
3) в контекстном меню пункта Ad as library для папки библиотеки не высвечивается, поэтому жму правой кнопкой по проекту --> Open Module Settings -->
Выбираю папку библиотеки, жму Ок, открывается следующее окно:
Опять жму Ок, затем следующее окно
опять жму Ок, и вот она здесь:
Жму Ок, папка библиотеки в деректории libs помечается как library home
Библиатека импортируется и доступна из кода, но при компиляции все та же Gradle: error: package * does not exist
Но что в данном случае добавить в build.gradle ? не могу понять, может я вообще с самого начала не правильно делаю? Буду очень признателен за помощь.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Android Studio. Наработки и помощь в проблемах.
Попробуйте обратиться к neoksi, он на сколько я понял, на этом уже собаку съел, особенно в AndroidStudio.
Re: Android Studio. Наработки и помощь в проблемах.
Спасибо. Решил. Попозже напишу каким образом.
Re: Android Studio. Наработки и помощь в проблемах.
Во - первых по поводу добавления jar библиотеки.
Проблема: при запуске проекта: NoClassDefFoundError
Решил: команды в Terminal:
....MyAppProject> gradlew clean
....MyAppProject> gradlew build
Во-вторых по поводу добавления проектной библиотеки.
1) Папку библиотеки поместил в MyAppProject (т.е на один уровень с MyApp)
2) Правой кнопкой мыши по MyAppProject --> OpenModuleSettings --> + --> ImportModule и выбираю папку библиотеки
3) Затем в том же окне вкладка dependencies --> + (справа) --> Module Dependency --> добавляем папку библиотеки к MyApp
4) добавляем следующий код в MyApp/build.gradle
[syntax=java]dependencies {
compile project (':library')
}[/syntax]
5) добавляем следующий код в MyAppProject/settings.gradle
[syntax=java]include ':library', ':MyApp'[/syntax]
6) подправил код ПапкаБиблиотеки/build.gradle добавив следующий код:
[syntax=java]buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}[/syntax]
и удалив следующий:
[syntax=java]apply from: '../maven_push.gradle'[/syntax]
Так же важно убедиться, чтобы во всех manifest файлах и файлах build.gradle были одинаковые значения target sdk и min sdk (до того, как не проверил и не привел к одному значению ошибка вылазила).
Проблема: при запуске проекта: NoClassDefFoundError
Решил: команды в Terminal:
....MyAppProject> gradlew clean
....MyAppProject> gradlew build
Во-вторых по поводу добавления проектной библиотеки.
1) Папку библиотеки поместил в MyAppProject (т.е на один уровень с MyApp)
2) Правой кнопкой мыши по MyAppProject --> OpenModuleSettings --> + --> ImportModule и выбираю папку библиотеки
3) Затем в том же окне вкладка dependencies --> + (справа) --> Module Dependency --> добавляем папку библиотеки к MyApp
4) добавляем следующий код в MyApp/build.gradle
[syntax=java]dependencies {
compile project (':library')
}[/syntax]
5) добавляем следующий код в MyAppProject/settings.gradle
[syntax=java]include ':library', ':MyApp'[/syntax]
6) подправил код ПапкаБиблиотеки/build.gradle добавив следующий код:
[syntax=java]buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}[/syntax]
и удалив следующий:
[syntax=java]apply from: '../maven_push.gradle'[/syntax]
Так же важно убедиться, чтобы во всех manifest файлах и файлах build.gradle были одинаковые значения target sdk и min sdk (до того, как не проверил и не привел к одному значению ошибка вылазила).
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Android Studio. Наработки и помощь в проблемах.
Давненько в этом топике сообщения не появлялись. Неужели все вопросы по Android Studio закончились?
Мне вот очень интересно как же все таки подключить к проекту внешнюю библиотеку без копирования ее в проект.
В настоящий момент у меня есть самописная библиотека которая используется более чем в одном проекте и я не хочу плодить копии для этой библиотеки. К тому же она постоянно дорабатывается и правится. Вносить новые изменения в код будет весьма проблематично если для подключения в новый проект придется создавать еще одну копию этой библиотеки.
Мне вот очень интересно как же все таки подключить к проекту внешнюю библиотеку без копирования ее в проект.
В настоящий момент у меня есть самописная библиотека которая используется более чем в одном проекте и я не хочу плодить копии для этой библиотеки. К тому же она постоянно дорабатывается и правится. Вносить новые изменения в код будет весьма проблематично если для подключения в новый проект придется создавать еще одну копию этой библиотеки.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Android Studio. Наработки и помощь в проблемах.
Как предложил мне один известный человек, не буду называть его имени, нужно поднять свой мавен сервер и залить на него эту библиотеку.
Те есть вот она папочка, используй ее, но нет нужно аж "целый сервер" на это дело приспособить. 21 век на дворе, как ни как, облачные технологии.
Есть с виду понятная инструкция http://habrahabr.ru/post/114861/
Но черт возьми!! Папка! Вот она, лежит, на диске!! Какой еще сервер!!? Да, для больших проектов где более одного разработчика это сильно упрощает жизнь. Но я у себя один и у меня одна ПАПКА с библиотекой!
Те есть вот она папочка, используй ее, но нет нужно аж "целый сервер" на это дело приспособить. 21 век на дворе, как ни как, облачные технологии.
Есть с виду понятная инструкция http://habrahabr.ru/post/114861/
Но черт возьми!! Папка! Вот она, лежит, на диске!! Какой еще сервер!!? Да, для больших проектов где более одного разработчика это сильно упрощает жизнь. Но я у себя один и у меня одна ПАПКА с библиотекой!
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Android Studio. Наработки и помощь в проблемах.
http://devcolibri.com/4405KamiSempai писал(а): Мне вот очень интересно как же все таки подключить к проекту внешнюю библиотеку без копирования ее в проект.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Android Studio. Наработки и помощь в проблемах.
Спасибо за ссылку. Но как быть если у меня нет IntelliJ IDEA? Android Studio не позволяет создать Maven проект. Как вариант можно создать его на Eclipse, но получается я возвращаюсь к тому, от чего хочу уйти.doter.ua писал(а):http://devcolibri.com/4405KamiSempai писал(а): Мне вот очень интересно как же все таки подключить к проекту внешнюю библиотеку без копирования ее в проект.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Android Studio. Наработки и помощь в проблемах.
В результате продолжительных поисков мне удалось сделать задуманное. И так...
Как в Android Studio подключить к своему проекту другой проект(библиотеку), из внешней папки(директории):
В первую очередь нужно добавить проект в settings.gradle:
[syntax=xml]include ':ExternalProject'
project(':ExternalProject').projectDir = new File(settingsDir, '../ExternalProject/app/')[/syntax]':ExternalProject' - имя что мы присваиваем подключаемому модулю, может быть произвольным;
'../ExternalProject/app/' - это путь к подключаемому модулю. Две точки означают что нужно выйти из текущей папки перед тем как перейти к ExternalProject. Путь нужно указывать именно к самому модулю, а не всему проекту. По всей видимости, если в проекте есть несколько зависимых модулей их нужно будет подключить аналогичным способом.
После того как Модуль будет подключен, он появится в дереве проекта.
Далее прописываем зависимости в build.gradle:
[syntax=xml]dependencies {
compile project(':ExternalProject')
}[/syntax]Здесь используется то-же имя, что мы указали в предыдущем файле.
Замечание: Редактировать нужно build.gradle модуля к которому подключается ExternalProject. То есть файл который обычно находится в папке 'app'.
И это все! Больше ни чего делать не нужно!
Намного проще чем поднимать свой Maven сервер . Не так ли?
Как в Android Studio подключить к своему проекту другой проект(библиотеку), из внешней папки(директории):
В первую очередь нужно добавить проект в settings.gradle:
[syntax=xml]include ':ExternalProject'
project(':ExternalProject').projectDir = new File(settingsDir, '../ExternalProject/app/')[/syntax]':ExternalProject' - имя что мы присваиваем подключаемому модулю, может быть произвольным;
'../ExternalProject/app/' - это путь к подключаемому модулю. Две точки означают что нужно выйти из текущей папки перед тем как перейти к ExternalProject. Путь нужно указывать именно к самому модулю, а не всему проекту. По всей видимости, если в проекте есть несколько зависимых модулей их нужно будет подключить аналогичным способом.
После того как Модуль будет подключен, он появится в дереве проекта.
Далее прописываем зависимости в build.gradle:
[syntax=xml]dependencies {
compile project(':ExternalProject')
}[/syntax]Здесь используется то-же имя, что мы указали в предыдущем файле.
Замечание: Редактировать нужно build.gradle модуля к которому подключается ExternalProject. То есть файл который обычно находится в папке 'app'.
И это все! Больше ни чего делать не нужно!
Намного проще чем поднимать свой Maven сервер . Не так ли?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Android Studio. Наработки и помощь в проблемах.
Всем привет, экспортировал проект как описано здесь http://stackoverflow.com/questions/1662 ... oid-studio, однако при установке apk файла на всех устройствах что я пробовал возникает ошибка установки, хотя само приложение нормально запускается как на эмуляторе так и при отладке на реальном устройстве, в чем может быть проблема?
Re: Android Studio. Наработки и помощь в проблемах.
еще раз собери apk, такое бывает.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198