相关疑难解决方法(0)

将本地.aar文件添加到我的gradle构建中

所以我创建了一个Android-Library,并成功地将其编译成.aar文件,我称之为aar文件:"projectx-sdk-1.0.0.aar"现在我希望我的新项目依赖于这个aar所以我所做的就是关注这篇文章:http:// life. nimbco.us/referencing-local-aar-files-with-android-studios-new-gradle-based-build-system/

但由于我没有得到预期的结果,这篇文章让我感到困惑:

aar的包名是:com.projectx.photosdk并调用里面的模块sdk

这是我目前的项目结构:

|-SuperAwesomeApp
|--.idea
|--gradle
|--App
|---aars
|----projectx-sdk-1.0.0.aar
|---build
|---jars
|---src
|---build.gradle
Run Code Online (Sandbox Code Playgroud)

他是我的gradle构建文件:

apply plugin: 'android'

buildscript {
    repositories {
        mavenCentral()
        flatDir {
            dirs 'aars'
        }
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

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

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'


    compile 'com.projectx.photosdk:sdk:1.0.0@aar'
//    compile files( …
Run Code Online (Sandbox Code Playgroud)

android gradle maven android-studio aar

66
推荐指数
4
解决办法
6万
查看次数

如何合并/合并两个AAR文件?

我的用例如下:

  1. 我有一个第三方图书馆向我提供aar图书馆(说L1)。请注意,我没有这个来源。
  2. 我想在L1的顶部写一个包装层,并创建另一个aar(SDK)(假设L2)。L1应该包装在L2内。请注意,L2中的代码是最少的,就像L1的包装器一样。
  3. 这个想法是,如果有人将此SDK集成到他们的Android应用程序中,则该应用程序仅应与L2进行交互,甚至不需要知道L1的存在。基本上,我希望在应用程序gradle文件中仅包含L2。

我的问题是这是否可能?我在堆栈溢出时看了一些类似的问题-我得到了以下可能的解决方案-但似乎都不适合:

  1. 使用android-fat-aar插件-据我了解,此插件无法与最新的gradle版本一起使用,并且不再进行主动维护。我正在使用Android Studio版本3.3.1和gradle版本4.10.1。我认为它还有其他一些局限性,在使用辅助文件时无法正常工作。
  2. 一些答案似乎表明将aar发布到某些仓库(例如maven),在这种情况下,它将得到解决。我不确定我是否理解正确,但是无论如何,将L1或L2发布到任何公共存储库都不是我的选择。

因此,再次重申基本要求是:

  1. 该应用程序应仅调用L2的API并与L2交互。
  2. 该应用程序只需要在其gradle文件中包括L2依赖关系?

考虑到我提到的限制,有什么方法可以实现它-不一定必须通过合并aar。

以下可能/是否有意义?

  1. 编写L2所需的代码,并从中创建一个jar
  2. 提取L1 aar(因为aar基本上是一个档案)
  3. 添加在上面的步骤1中创建的jar,并创建一个包含L2 API的新aar(例如L3)。
  4. 现在,该应用程序需要添加为依赖项,并且仅与一个依赖项L3(将具有L2 API)进行交互。

android dependency-management gradle android-studio android-gradle-plugin

9
推荐指数
1
解决办法
824
查看次数

Android Studio使用另一个AAR文件和jar内部创建AAR

我正在使用另一个aar和jar文件依赖项创建AAR文件.我已成功创建.aar发布文件.

然后,我将新的AAR文件导入到示例项目中.该项目运行良好.当要访问aar和jar类时,它显示NoClassDefFound错误.

注意:首先我想知道,截至目前,另一个AAR中的AAR是否可行.任何人都可以帮助我摆脱这个新事物的问题吗?

我提到这个链接也创建了一个包含多个AAR/JAR的AAR.它说传递=真.但是,不明白,在哪里使用那个标志.在第三方使用Application或在AAR项目依赖项中创建AAR.

谢谢提前.

我的迷你项目Gradle文件:

Mini Project,只转换为.AAR文件.那么,这个文件只会使用另一个NewProject

Mini Project Build.gradle文件

/*
This would be enabled for development purpose and to debug and check the same
*/

apply plugin: 'com.android.application'

/*
This would be enabled for exporting as aar file
apply plugin: 'com.android.library'
*/

//apply plugin: 'com.android.library'

android {

    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }
    defaultConfig {

        /*
        This application id would be used for development purpose and to debug …
Run Code Online (Sandbox Code Playgroud)

android android-library aar android-studio-2.1

8
推荐指数
2
解决办法
6790
查看次数

创建一个依赖于多个AAR的AAR

我正在努力构建一个可以在其他应用程序中使用的SDK.

我的项目结构如下:

ProjectFolder
  |
  +--AndroidLibs
  |      |
  |      +--UI (android library - AAR)
  |      |
  |      +--Protocol (android library - AAR)
  |      |
  |      +--infra (android library - AAR)
  |
  +--SDK(depends on UI, Protocol and Infra) 
  |
  +--APP(depends on SDK)
Run Code Online (Sandbox Code Playgroud)

如您所见,我们有3个不同的库,每个库都是我们系统中的模块(infra,ui和protocol).他们每个人都在创建一个AAR.

我们的SDK是一个包装器,包含对较低层的一些API调用.

我们想要创建一个依赖于所有其他AAR的AAR,但是出于某种原因,当我们尝试运行它时,它说他找不到某些类的源代码.

我发现了一些与此问题相关的问题,但它们没有奏效.也尝试使用transitive依赖项,但底线是相同的 - 找不到源代码.

  1. android-studio-how-to-package-one-aar-from-multi-library-projects:一个答案就是没有解决方案(Google员工).
  2. create-an-aar-with-multiple-aars-jars:使用transitive依赖项.
  3. 创建Mojo以创建具有所有"aar"依赖关系的AAR

我们还能做些什么吗?

android module gradle android-gradle-plugin aar

7
推荐指数
1
解决办法
1890
查看次数

android studio生成依赖的aar

我有一个库项目(A)引用另一个jar文件(B.jar),但是在生成aar文件之后,jar文件(B.jar)没有捆绑在输出aar文件中,当使用这个aar文件时,我得到了a NoClassDefFoundError.

有没有办法让gradle捆绑输出aar文件中的所有依赖类?这是我的build.gradle:

apply plugin: 'com.android.library'

repositories {
    mavenCentral()
}

android {

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':common')
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio

6
推荐指数
2
解决办法
1994
查看次数

多个AAR文件

我使用的是Android Studio 1.2

我创建了一个私有库,我想在另一个应用程序中使用它.

要使用它我创建一个AAR文件,但这个AAR不起作用.我的库中有一个对AAR文件的依赖.

AAR文件不依赖?

如果我使用jar,我包括创建所有依赖项,项目工作正常.

注意 :

我知道如何导入AAR文件.问题是在AAR中使用AAR ..

谢谢.

android android-studio aar

6
推荐指数
2
解决办法
5266
查看次数

Android Studio将2 .aar合二为一

我有一个Android Studio库项目,它取决于另一个库项目.

顶级项目依赖于第二个库项目的代码和资源.

在客户端应用程序中仅使用顶级库项目.aar时,找不到第二个库项目中的资源.

那么在这种情况下我们是否必须始终使用2个.aar文件而不是一个?

android gradle android-studio

6
推荐指数
0
解决办法
1425
查看次数

Android Studio:另一个 AAR 库中的 AAR 库依赖项

我使用的是Android Studio 1.5。我有一个图书馆项目core-speech-service.aar。此 AAR 文件已正确生成(所有类均在 AAR 文件的classes.jar 内构建并打包)。

现在我正在创建另一个 AAR 库google-speech-service.aar,它依赖于第一个 AAR(核心语音服务)。因此,我将其添加为新 AAR 库项目中的库依赖项(编译)。

到目前为止,一切都很好。Android studio 将 core-speech-service.aar 作为库模块复制到新的库项目中。但是当我构建 google-speech-service 库项目时,它会创建一个 AAR 文件,但打包的 AAR 文件既不包含 core-speech-service.aar 中的类,也不包含 core-speech-service.aar 本身。

我错过了什么吗?

谢谢阿拜

dependencies android

4
推荐指数
1
解决办法
2541
查看次数