Intereting Posts
Использование одного ключа API Карт Google для различных приложений для Android Используйте как InstrumentationTestRunner, так и AndroidJUnitRunner с Robotium и Espresso Наследование стиля в Android AlertDialog с пользовательским представлением: изменить размер, чтобы обернуть содержимое представления Как установить мой град для окончательной версии apk Как иметь FAB с опцией без прокладки, но все же иметь это возвышение? AutocompleteTextView: на «NEXT» выделите следующий TextView, на «DONE», заставьте клавиатуру исчезнуть Как уведомить пользователя, когда он вошел в кинотеатр в андроиде? PEM для PublicKey в Android Консенсус по ленивой загрузке битмапов в адаптере (выделение на Bitmap.recycle ()) BitmapFactory не может декодировать растровое изображение от Uri после фотографий, сделанных на Android Nougat OnCreate () не вызывается getWritableDatabase () Как установить размер пользовательского вида Замена Android Fragments динамически Изменение шрифта закусочной

Gradle Warning "не указано, зависит от библиотек, но является банкой" при компиляции модуля android в пользовательском модуле java-библиотеки

Я новичок в Gradle. У меня есть простая структура проекта (показано ниже), в которой есть основной модуль приложения для Android, один модуль Android (myandroidlibrary) и один чистый Java-модуль (myjavalibrary). Они имеют простые зависимости, app -> myjavalibary, myjavalibary -> myandroidlibrary (см. Рис. Ниже). Снимки файлов Gradle также приведены ниже.

Однако, синхронизируя градир, он вызывает следующую ошибку:

D:\MyTestCodes\MyTestApplication\app\build.gradle Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar 

Pls помогите мне! Я провел весь этот день, чтобы разобраться в этом безрезультатно!

 MyProject - app - myjavalibrary (pure java library) - myandroidlibrary (android library) 

Теперь зависимость выглядит следующим образом:

 "app" depends on -> "myjavalibrary" "myjavalibrary" depends on -> "myandroidlibrary" 

Файлы Gradle для каждого из модулей следующие:

 gradle file for app module: ---------------------------- apply plugin: 'com.android.application' android { // ommitting other detail dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.0.0' compile project(':myjavalibrary') } Gradle file for myjavalibrary module: ------------------------------------- apply plugin: 'java' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':myandroidlibrary') } gradle file for myandroidlibrary module: ---------------------------- apply plugin: 'com.android.application' android { //ommiting other detail. dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.0.0' } The settings.gradle: --------------------- include ':app', ':myjavalibrary', ':myandroidlibrary' 

Теперь, когда я синхронизирую файлы gradle, он показывает следующую ошибку:

  D:\MyTestCodes\MyTestApplication\app\build.gradle Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar 

Предупреждение вызвано модулем myjavalibrary pure-jave, имеющим зависимость от myandroidlibrary one, который является библиотекой Android.

Gradle предупреждает вас, что модуль pure-java ничего не знает о специфических материалах Android myandroidlibrary (таких как ресурсы Android, активы и т. Д.). Имея эту зависимость (pure-java для android library one), вы можете потерять некоторые вещи, которые вы ожидаете.

Более чистое направление зависимостей было бы от библиотеки android до библиотеки pure-java. В этом случае Gradle не даст вам никаких предупреждений.

Если вы хотите создать проект приложения для Android из java-кода, используйте apply plugin: 'com.android.application' .

Если вы хотите создать проект библиотеки из java-кода, используйте apply plugin: 'com.android.library' .

Если вы хотите использовать предварительно созданные файлы jar, не создавайте для них никакого проекта. Просто добавьте их в проекты, в папку libs , которые зависят от них. compile fileTree(dir: 'libs', include: ['*.jar']) в dependencies позаботится о них.