Android Gradle включает локальный файл JAR

Я пытаюсь скомпилировать APK, который использует устаревшую библиотеку в файле JAR.

Я уже задавал другие вопросы по SO, и никто мне не помог: 1, 2, 3 и 4. Я даже нашел открытую проблему на github, связанную с моим страданием Градл / Gradle / вопросы / 1184 - gradle -q dependencies не перечисляет зависимости локальных файлов ... что отстой, потому что я потерял много времени, думая, что файловая зависимость не была включена.

В любом случае, это файл build.gradle моего проекта:

// Project's build.gradle
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

А это build.gradle приложения.

// app's build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.mycompany.myapp"
        minSdkVersion 24
        targetSdkVersion 26
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation files('libs/mylib_java.jar')
}

Проблема в том, что когда я запускаю ./gradlew build, я получаю сообщение об ошибке, как будто пакет, реализованный в mylib_java.jar, не существует ...

Task :app:compileDebugJavaWithJavac FAILED /home/donatoaz/my_apk_gradle/app/src/main/java/com/mycompany/myapp/MainActivity.java:18: error: package mycompany.mylib.audiofx does not exist import mycompany.mylib.audiofx.CustomEffect;

Раньше я мог нормально скомпилировать apk, но при этом использовалась очень старая Android Studio, без градиента (я использовал API уровня 19, Android 4.4).

Сейчас я использую gradle 4.5.1. PS Я не использую Android Studio, это встроенный сервер непрерывной интеграции без головы.

Ссылка на сканирование сборки, созданное gradle, находится здесь

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
703
1

Ответы 1

Вы должны иметь возможность «продвигать» файловую зависимость так, чтобы она отображалась в отчете о зависимостях, настроив плоский репозиторий каталогов:

repositories {
    flatDir {
        dirs "libs"
    }
}

dependencies {
    implementation ":mylib_java:"
}

Другие вопросы по теме