2016-08-12 4 views
0

У меня есть проект с приложением и некоторый модуль m1 (андроидная библиотека).приложение не видит классы модуля на сборке

Я создаю папки src\debug\java в приложении и m1. Я написал новые классы в этих папках. Некоторые «отладочные» классы приложений используют «отладочные» классы m1.

Попробуйте построить. Получите ошибку: package ... does not exist. Если я нажимаю на ошибку, AS не показывает никаких ошибок, я могу перейти к классам m1.

Но почему это произошло и как это исправить?

Я использую AS 2.1 и gradle 2.14 (попытка 2.10 не имеет успеха). Попробуйте построить из AS и cmd.

UPD 2016-08-13: О, я глуп. Я забыл удалить код с main.

UPD 2016-08-13 (2): Нет, проблема в другом. Написать сообщение сейчас.

ответ

0

Я забыл про очень важную вещь: «Строительство Проекты библиотеки ... Когда Библиотечный проект построена и упаковывает в распределительном сгусток, то сборка всегда сборка релиза.» (Из here).

У меня есть несколько проектов и одна общая библиотека, используемая во всех проектах. Я создаю собственные классы/ресурсы (диагностические утилиты, диалоги, настройки, настройки) для отладки. Я помещаю его в общую библиотеку только для сборки отладки.

Я подумал: классы отладки библиотеки используются только в классах отладки приложения. Релиз apk не будет иметь этих классов.

Но я получаю ошибку при сборке. Потому что gradle ищет мои классы библиотеки в папке выпуска при сборке.

Итак, я нахожу только одно решение:

1) место отладки кода библиотеки из папки отладки обратно в основную папку.

2) Добавить правила proguard, чтобы исключить ресурсы отладки библиотеки в сборке выпуска.

Смежные вопросы