#java #sdk #ide #android-studio #android-support-library
#java #sdk #ide #android-studio #android-support-library
Вопрос:
Недавно я обновил IDE Android Studio до 0.8 для работы с новым Android L SDK. Для начала я импортировал готовый проект Android, который не получает ошибок в более старой версии android studio. В версии 0.8 я использую такие строки, как
import android.support.v4.app.Fragment;
get: Поддержка не может быть решена, в результате чего остальной код содержит ошибки. Logcat возвращает 101 экземпляр
Error:(8, 30) error: package android.support.v4.app does not exist
1 за каждый раз, когда я вызываю библиотеку поддержки в инструкции import.
Я пробовал
- переустановка IDE
- удаление содержимого папки idea
- повторная установка всех SDK, включая библиотеки поддержки
- синхронизация gradle
- копирование библиотеки поддержки в папку libs вручную
- перестройка проекта
- а также создание нового проекта для тестирования библиотеки
не совсем уверен, что осталось сделать.
Комментарии:
1. Успешно ли выполняется синхронизация gradle? Есть ли библиотека поддержки в вашем списке зависимостей?
2. сбой gradle, и я добавил поддержку в список зависимостей
3. вы установили репозиторий из SDK manager?
Ответ №1:
Хорошо, итак, у меня была такая же проблема, и я нашел решение на форуме udacity:
В Android Studio:
- Щелкните правой кнопкой мыши на папке «приложения» ваших проектов и выберите -> настройки модуля
- Перейдите на вкладку «зависимости»
- Нажмите на знак , чтобы добавить новую зависимость, и выберите «Зависимость от библиотеки»
- Найдите нужную вам библиотеку и добавьте ее
Комментарии:
1. Возможно, не сработало у меня, у которого не было
app
папки после импорта из Eclipse. Я видел некоторое сообщение о конфликтующих версиях пакета поддержки. Раньше я просто копировал более новый поверх более старого, но я думаю, что что-то обновилось.2. у меня это работает .. просто, но нас расстраивает, если мы обнаруживаем проблемы
3. У меня тоже сработало. Пришлось включить зависимость android.support, и теперь все ошибки сборки, связанные с не найденным пакетом android.support.v4.app, исчезли.
4. В Android Studio 3.6 не было опции «Настройки модуля» при щелчке правой кнопкой мыши по папке «приложение», но была опция «Открыть настройки модуля» при щелчке правой кнопкой мыши по проекту верхнего уровня. Сочетанием клавиш является F4. Однако на вкладке «Зависимости» ничего не указано, ссылающееся на
support-v4
библиотеку.
Ответ №2:
ответ @boernard решает эту проблему с помощью IDE Android Studio, но если вы хотите понять, что происходит под обложками, это простое обновление файла сборки gradle:
Вы можете отредактировать файл build.gradle из IDE (левая панель: Gradle Scripts -> build.gradle (Module: app)
) или использовать необработанный путь ( <proj_dir>/app/build.gradle
) и добавить / обновить следующий раздел зависимостей:
dependencies {
//
// IDE setting pulls in the specific version of v4 support you have installed:
//
//compile 'com.android.support:support-v4:21.0.3'
//
// generic directive pulls in any available version of v4 support:
//
compile 'com.android.support:support-v4: '
}
Использование приведенной выше общей директивы компиляции позволяет отправлять ваш код кому угодно, при условии, что у них установлен некоторый уровень Android Support Libraries v4
.
Комментарии:
1. Отлично, я сделал то же самое … и работает у меня… Я добавил в компиляцию gradle ‘com.android.support:support-v4: ‘
Ответ №3:
Ни одно из вышеупомянутых решений не сработало для меня. Что, наконец, сработало, так это:
Вместо
import android.support.v4.content.FileProvider;
Используйте это
import androidx.core.content.FileProvider;
Этот путь обновлен по состоянию на AndroidX (переупакованная библиотека поддержки Android).
Комментарии:
1. Спасибо! это привело меня также к импорту ContextCompat!
Ответ №4:
[по некоторым причинам этот ответ связан с Eclipse, А НЕ с Android Studio!]
Вы пробовали устанавливать библиотеки поддержки в свой путь к классу? Эта ссылка с веб-сайта разработчика Android содержит некоторую информацию о том, как это сделать.
Попробуйте выполнить эти шаги с веб-сайта:
Создайте проект библиотеки на основе кода библиотеки поддержки:
- Убедитесь, что вы загрузили библиотеку поддержки Android с помощью SDK Manager.
-
Создайте проект библиотеки и убедитесь, что необходимые файлы JAR включены в путь сборки проекта:
- Выберите Файл > Импортировать.
- Выберите сохранение кода Android в Workspace и нажмите Далее.
- Перейдите в каталог установки SDK, а затем в папку библиотеки поддержки. Например, если вы добавляете проект appcompat, перейдите в /extras/android /support/v7/appcompat/ .
- Нажмите Готово, чтобы импортировать проект. Для проекта appcompat версии 7 теперь вы должны увидеть новый проект под названием android-support-v7-appcompat.
- В новом проекте библиотеки разверните папку libs/, щелкните правой кнопкой мыши каждый файл .jar и выберите Путь сборки > Добавить в путь сборки. Например, при создании проекта appcompat версии 7 добавьте оба android-support-v4.jar и android-support-v7-appcompat.jar файлы по пути сборки.
- Щелкните правой кнопкой мыши папку проекта библиотеки и выберите Путь сборки > Настроить путь сборки.
- На вкладке Порядок и экспорт проверьте файлы .jar, которые вы только что добавили в путь сборки, чтобы они были доступны проектам, зависящим от этого проекта библиотеки. Например, проект appcompat требует, чтобы вы экспортировали оба android-support-v4.jar и android-support-v7-appcompat.jar файлы.
- Снимите флажок Зависимости Android.
- Нажмите «ОК», чтобы завершить изменения.
-
Теперь у вас есть проект библиотеки для выбранной вами библиотеки поддержки, который вы можете использовать с одним или несколькими проектами приложений.
- Добавьте библиотеку в свой проект приложения:
- В Project Explorer щелкните правой кнопкой мыши ваш проект и выберите Свойства.
- На панели категорий в левой части диалогового окна выберите Android.
- На панели «Библиотека» нажмите кнопку «Добавить«.
- Выберите проект библиотеки и нажмите OK. Например, проект appcompat должен быть указан как android-support-v7-appcompat.
- В окне свойств нажмите OK.
Комментарии:
1. когда я пытаюсь это сделать, я получаю известную ошибку: не удалось найти метод complie () для аргументов [com.android.support: support-v4: 18.0. ] в org.gradle.api.internal.artifacts.dsl.dependencies. DefaultDependencyHandler_Decorated@ad93a93. Пожалуйста, установите репозиторий поддержки Android из Android SDK Manager. <a href=»openAndroidSdkManager»> Откройте Android SDK Manager</a>
Ответ №5:
Удалить
/.idea/libraries
Затем синхронизируйте gradle для сборки проекта.
Комментарии:
1. Для меня это было исправлением. Зависимость ранее была правильно настроена в gradle, но обновление версии плагина Kotlin все сломало , и исправление заключалось в том, чтобы удалить
.idea/libraries
, затемInvalidate Caches/Restart
в Android Studio.2. У меня это не сработало, но помогло мне найти решение, потому что все файлы, которые я ожидал поместить в папку, не были созданы заново.
Ответ №6:
В моем случае ошибка была в модуле моего проекта.Я решил эту проблему, добавив
dependencies {
implementation 'com.android.support:support-v4:20.0. '
}
эта зависимость в gradle соответствующего модуля
Ответ №7:
// запустите это сообщение — оно все исправило
плагин ionic cordova добавляет cordova-plugin-androidx-adapter
Ответ №8:
tl; dr Удалите все неиспользуемые модули, которые зависят от библиотеки поддержки из вашего settings.gradle
.
Длинная версия:
В нашем случае мы объявили библиотеку поддержки как зависимость для всех наших модулей (одного модуля приложения и нескольких библиотечных модулей) в common.gradle
файле, который импортируется каждым модулем. Однако был один библиотечный модуль, который не был объявлен как зависимость для любого другого модуля и, следовательно, не был собран. При каждых нескольких синхронизациях Android Studio выбирала именно этот модуль в качестве того, где искать библиотеку поддержки (вот почему у нас это получилось случайным образом). Поскольку этот модуль никогда не использовался, он так и не получил сборку, что, в свою очередь, привело к отсутствию файла jar в папке intermediates модуля.
Удаление этого библиотечного модуля из settings.gradle
и повторная синхронизация устранили проблему для нас.
Ответ №9:
В ECLIPSE LUNA я решил эту проблему, используя контекстное меню в моем проекте: Инструменты ANdroid> Добавить библиотеку поддержки…
Ответ №10:
Если ни одно из этих решений не сработало, вам необходимо доработать свой проект для полной поддержки AndroidX. Попробуйте
npm i -D jetifier
затем запустите
npx jetify
вы могли бы найти более подробную информацию здесь : https://github.com/michalchudziak/react-native-geolocation/issues/39#issuecomment-514566895 это должно устранить проблемы. Дайте мне знать, сработало ли это.
а также не забудьте добавить ниже в gradle.properties
android.useAndroidX=true
android.enableJetifier=true
Комментарии:
1. это сработало. Но почему?
2. Приложения React Native не являются стандартными приложениями для Android. Модули React Native с собственным кодом Java обычно распространяют этот код как исходный и напрямую связывают исходный код. При обновлении ваших модулей свежеустановленный Java-код из ваших зависимостей react-native больше не будет переведен в AndroidX, и ваша сборка завершится ошибкой. Таким образом, вам необходимо выполнять миграцию AndroidX в вашем связанном исходном коде каждый раз, когда вы обновляете модули react native, которые отправляют собственный Java-код. Вот что делает этот инструмент — он может переписывать исходный код в node_modules каждый раз, когда вы его вызываете. Надеюсь, это поможет.
3. Спасибо! да, это довольно проницательно.
Ответ №11:
В моем случае проблема была решена путем добавления строки cordova.system.library.2=com.android.support:support-v4:
в platforms/android/project.properties
файл
Ответ №12:
Для меня проблема была вызвана файлом gradle.properties в списке скриптов Gradle. Он отображался как gradle.properties (глобальный) и ссылался на файл в C:users.gradlegradle.properties . Я щелкнул по нему правой кнопкой мыши и выбрал удалить из меню, чтобы удалить его. Он удалил файл с жесткого диска, и теперь мой проект создается и запускается. Я предполагаю, что глобальный файл перезаписывал что-то, что использовалось для поиска пакета android.support
Ответ №13:
Моим решением было создание проекта с Use legacy support library
опцией checked
. после успешного завершения создания проекта используйте только delete
src
папку в каталоге приложения и copy
src
папку из вашего основного проекта. Наконец, Sync
проект с файлами Gradle.
Ответ №14:
Добавьте это в build.gradle:
allprojects {
repositories {
google()
}
}
dependencies {
implementation "com.android.support:support-core-utils:28.0.0"
}
* Должна быть minSdkVersion 14 (или выше)
Ответ №15:
9 марта 2023
Если вы используете Ionic / Angular, у меня это сработало:
cd android
./gradlew clean
cd ..
npx jetify
Надеюсь, это поможет.