Gluon Mobile: использование ExoPlayer - PullRequest
0 голосов
/ 15 октября 2018

Я работаю над приложением для Android с GluonMobile.Для одной функции мне нужен ExoPlayer.Поэтому я включил зависимость com.google.android.exoplayer: exoplayer: +.Кажется, что зависимость является aar-файлом, и InteliJ не может найти ни один из классов ExoPlayers.Вот мой buildscript:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
        maven {
            url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
        }
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:+'

        classpath 'com.github.jengelman.gradle.plugins:shadow:+'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'java'
apply plugin: 'idea'

idea {
    module {
        downloadJavadoc = true
        downloadSources = true
    }
}

repositories {
    mavenCentral()
    jcenter()
    google()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
    maven {
        url uri('libs')
    }
}

mainClassName = '[...].main.Main'
version = '2.0_Alpha'

dependencies {
    compile "com.gluonhq:charm:+"
    compile "com.gluonhq:glisten-afterburner:+"

    compile "com.google.apis:google-api-services-youtube:+"
    compile "com.google.api-client:google-api-client-java6:+"
    compile "com.google.oauth-client:google-oauth-client-jetty:+"
    compile "com.google.code.gson:gson:+"
    compileOnly 'lib.idea:annotations:0'

    androidImplementation "org.javafxports:jfxdvk:+"

    androidImplementation 'com.google.android.exoplayer:exoplayer:+@aar'
}

jfxmobile {
    downConfig {
        version = '+'
        // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
        //noinspection GroovyAssignabilityCheck
        plugins 'browser', 'display', 'lifecycle', 'statusbar', 'storage'
    }
    android {
        manifest = 'src/android/AndroidManifest.xml'
        //androidSdk = "${ANDROID_HOME}"
        compileSdkVersion = 28
        targetSdkVersion = 22
        minSdkVersion = 16


        packagingOptions {
            exclude 'META-INF/DEPENDENCIES.txt'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/dependencies.txt'
            exclude 'META-INF/LGPL2.1'
        }
    }
}

task installApk{
    group = "gluon mobile for android"
    doLast{
        exec {
            workingDir "${ANDROID_HOME}\\platform-tools"
            commandLine "${workingDir}\\adb.exe", "install", "${buildDir}/javafxports/android/YouJavaTubeApp.apk"
        }
    }
}

Я уже нашел кое-что о explodeAarDependencies (...), но это не сработало.Так что у кого-нибудь есть идеи, как включить (любые) зависимости aar в мой проект GluonMobile.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Я думаю, что вы добавляете зависимости в неправильный файл Gradle.Там будет 2 файла Gradle, один для уровня проекта и для уровня приложения.вам нужно добавить зависимости библиотек в gradle уровня приложения.

You need to add your dependencies in app level gradle like this

, тогда как вы можете добавлять его в gradle уровня проекта.

Мой файл Gradle выглядит следующим образом:

  apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.3"
    defaultConfig {
        applicationId "my.application.id"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.android.support:recyclerview-v7:26.1.0'
    implementation 'com.google.android.exoplayer:exoplayer:2.9.0'


}

Для получения дополнительной информации о добавлении pls exoplayer см.

Github и https://developer.android.com/guide/topics/media/exoplayer

0 голосов
/ 15 октября 2018

Вы на правильном пути насчет explodeAarDependencies, эта задача используется плагином jfxmobile для распаковки зависимостей .aar в .jar и другие ресурсы.

Вы можете найти информацию о задаче здесь .

Как его использовать:

Включите в свой файл build.gradle зависимость:

dependencies {
    ...

    androidCompile 'com.google.android.exoplayer:exoplayer:2.9.0'
}
  • Примечание 1: не использовать @aar

  • Примечание 2: плагин jfxmobile использует некоторые определенные конфигурации, такие как androidCompile вместо androidImplementation.

  • Примечание 3: Я предпочел бы использовать данную версию, а не +.

И в конце файла добавить задачу:

project.afterEvaluate {
    explodeAarDependencies(project.configurations.androidCompile)
}

И это все.

Сохраните и примените / синхронизируйте / перезагрузите сборку, и вы увидите exoplayer и несколько транзитивных зависимостей, включенных в зависимости компиляции Android, как .aar, так и .jar.

...