相关疑难解决方法(0)

Android Studio如何从多个库项目中打包单个AAR?

我正在构建android库项目,它依赖于另一个内部库项目.

我想知道是否有办法打包单个AAR库,其中已包含内部库.我想只与我的应用程序开发人员共享一个AAR库包.

这是我的build.gradle文件当前的样子,但目前它们生成单独的AAR文件,并且两者都需要包含在Application的build.gradle中.由于应用程序是由另一家公司构建的,我们需要与它们共享最终的AAR文件,而不是完整的库项目.

----- internalLib -------- >>>>>>>>>>

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android-library'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion '18.1.1'
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
}
Run Code Online (Sandbox Code Playgroud)

----- externalLib --------

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android-library'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion '18.1.1'
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile project(':internalLib')
}
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-gradle-plugin

57
推荐指数
1
解决办法
2万
查看次数

将第三方库捆绑到我的 .aar 中

我正在构建一个用于音乐流媒体的 Android 库。它有ExoPlayer作为依赖项(顺便说一句,这是一个优秀的库!)。

我们将此库用于我们现在也在 Xamarin 中开发的另一个项目。目前,我们需要添加两个库(我的 .aar 和 ExoPlayer 的 .jar)。说实话,这有点烦人,我很想把我的 .aar 放进去,然后就可以了。

那么两个问题:

  1. 有没有办法可以使用 gradle 等将 ExoPlayer 捆绑到我的 .aar 中?(我是个初学者,请彻底)
  2. 我意识到这可能不是最好的做法(依赖关系应该由应用程序管理,等等),但实际上,每次更新前者时,我们都会一起测试 ExoPlayer 和我的库。那么,是否有充分的理由我不应该将 ExoPlayer 捆绑到我的库中,或者可以吗?

这是我当前的 gradle 文件。不过,没什么令人兴奋的东西。但是当我将初始应用程序转换为库时,也许有一些奇怪的事情,谁知道呢......

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile ('com.google.android.exoplayer:exoplayer:r1.5.6')
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    compile 'com.android.support:appcompat-v7:23.2.0'
}
Run Code Online (Sandbox Code Playgroud)

android jar android-gradle-plugin aar exoplayer

5
推荐指数
1
解决办法
3854
查看次数