标签: aar

在Android Studio中创建aar文件

我想在Android Studio中为我的库创建一个aar文件,我会选择jar选项,但我的库有资源.

知道如何从库中创建aar文件吗?

android jar android-studio aar

159
推荐指数
5
解决办法
12万
查看次数

使用"flatDirs"将本地.aar文件添加到Gradle构建不起作用

我知道这个问题:将本地.aar文件添加到我的gradle构建中,但该解决方案对我不起作用.

我尝试将此语句添加到我的build.gradle文件的顶级:

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}
Run Code Online (Sandbox Code Playgroud)

我还把slidingmenu.aar文件放入/libs并在dependencies部分中引用它:compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'但它根本不起作用.

我也试过compile files('libs/slidingmenu.aar')但没有运气.

我错过了什么?有任何想法吗?

PS Android Studio 0.8.2

android android-studio build.gradle android-gradle-plugin aar

155
推荐指数
11
解决办法
15万
查看次数

Android档案库(aar)vs标准jar

我一直在阅读一些关于Gradle作为Android应用程序的标准构建系统的新采用的文章.好吧,来自标准的Java开发,我通常依赖于jar文件来构建我的项目.然而似乎安卓也有AAR包,这是相当于DLL在Windows操作系统文件,提到这里:

首先,您必须意识到Android平台不允许应用程序级别的"共享库".在"传统"编程语言平台,C,C++,Java中,您可以命名它,我们有这种共享运行时库的机制.(例如,Windows上的DLL,Unix上的DSO,JVM上的Jar等).但是,在Android上,除非您是Google或手机制造商,否则您无法做到这一点(请参阅下面的脚注1).作为应用程序开发人员,这可能是一个基本限制.在构建时和运行时"共享"或"重用"代码是软件工程实践中非常重要的一部分.由于上述限制,这在Android上相当困难(并非不可能,更难).

但是,我对这个概念有些怀疑.我的意思是,开发人员何时应该对其应用程序中包含aar依赖项感兴趣?这种依赖关系是否收紧到SDK最低版本?

例如,在一个项目中,我访问一个COM端口,我使用NDK预编译 .so库.如果我想分享这个实用程序,我是否必须创建一个aar?

java android jar aar

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

如何将AAR转换为JAR

情况:

我打算使用Java库,我只有一个来自Maven存储库的AAR文件,但我需要JAR文件.

背景故事:

我试图编译一个库,但它的Gradle结构不稳定.所以我要求一个编译的jar文件,它的开发人员从一些Maven存储库递给我一个aar文件(开发人员无法编译自己的项目).Gradle配置很乱,它依赖于多个库,Gradle抛出了一些例外.

我尝试在我的IDEA IDE中使用它,但它看不到它.一个库项目应该能够编译成一个jar文件,对吧?

问题:

我该怎么做才能将AAR文件转换为JAR文件?

java jar aar

88
推荐指数
7
解决办法
10万
查看次数

使用gradle未解析aar库的传递依赖性

我已经调查了一段时间,可能看到这里最流行的答案与aartransitive依赖关系有关,但不知何故,我仍然不清楚如何使这个工作.

所以:

我有给定gradle配置的android库:

apply plugin: 'android-library'
apply plugin: 'android-maven'

version = "1.0.0"
group = "com.somepackage"

buildscript {
    repositories {
        mavenCentral()
        mavenLocal()
    }

    dependencies {
        classpath 'com.github.dcendents:android-maven-plugin:1.0'
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.3'

    defaultConfig {
        minSdkVersion 10
    }
}

repositories {
    maven { url 'http://www.bugsense.com/gradle/' }
}

dependencies {
    provided 'com.google.android.gms:play-services:+'
    provided 'com.android.support:appcompat-v7:+'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.bugsense.trace:bugsense:3.6'
    compile 'commons-net:commons-net:3.3'
}
Run Code Online (Sandbox Code Playgroud)

然后我将它部署到本地maven repo gradle install.部署库的POM文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sprezzat</groupId> …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-library aar

84
推荐指数
5
解决办法
4万
查看次数

Gradle以非零退出值1结束(ic_launcher.png:错误:重复文件)

我用gradle得到了这个奇怪的错误,请帮助我!

/.../app/build/intermediates/res/debug/drawable-xxhdpi-v4/ic_launcher.png:
    error: Duplicate file
/.../app/build/intermediates/res/debug/drawable-xxhdpi/ic_launcher.png:
    Original is here. The version qualifier may be implied.
Error:Execution failed for task ':app:processDebugResources'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:
Process 'command '/.../sdk/build-tools/22.0.1/aapt'' finished with non-zero exit value 1
Run Code Online (Sandbox Code Playgroud)

在它正常运行之前,但是因为我把classpath com.android.tools.build:gradle:1.2.2,这导致我错误

gradle aapt android-resources android-studio aar

75
推荐指数
5
解决办法
7万
查看次数

将本地.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万
查看次数

Android Library Gradle发布JAR

如何发布android-library项目的Jar包装?
我发现,classes.jar位于下面build/bundles/release/classes.jar,我想这是正确的Jar包(包含*.class文件).

是否有一些官方的方式,将库作为​​JAR而不是AAR发布?

编辑
我使用Gradle来发布Maven工件,我想发布JAR和AAR包.所以带有签名的JAR,md5,manifest,......
基于https://chris.banes.me/2013/08/27/pushing-aars-to-maven-central/

apply plugin: 'maven'
apply plugin: 'signing'

configurations {
    archives {
        extendsFrom configurations.default
    }
}

def sonatypeRepositoryUrl
if (isReleaseBuild()) {
    println 'RELEASE BUILD'
    sonatypeRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
} else {
    println 'DEBUG BUILD'
    sonatypeRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
}

if(!hasProperty('nexusPassword')) {
    ext.set('nexusPassword', System.console().readPassword("\n\$ Type in password for Sonatype nexus account " + nexusUsername + ": "))
}

if(!signing.hasProperty('password')) {
    ext.set('signing.password', System.console().readPassword("\n\$ Type in GPG key password: "))
}

afterEvaluate { project …
Run Code Online (Sandbox Code Playgroud)

java android jar gradle aar

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

构建 Android 库时出错:不支持直接本地 .aar 文件依赖项

我们最近升级到 Android Gradle 插件 4.0.0-beta03。我们现在在构建我们的库模块之一时看到此错误

$ ./gradlew library_module:assemble

任务 ':library_module:bundleDebugAar' 执行失败。
> 构建 AAR 时不支持直接本地 .aar 文件依赖项。 
生成的 AAR 将被破坏,因为来自任何本地 .aar 的类和 Android 资源 
文件依赖项不会打包在生成的 AAR 中。以前的安卓版本
在这种情况下,Gradle 插件也会产生损坏的 AAR(尽管没有抛出此错误)。这
以下 :library_module 项目的直接本地 .aar 文件依赖项导致此错误: 
______.aar

我可以看到这是几个月前添加到 AGP 中的。但他们没有提供更多关于原因的信息。

所以。

  1. 出了什么问题?还有更多信息吗?我在任何地方都找不到任何错误报告。
  2. 我该如何解决这个问题?这是说我不能建立一个依赖于其他本地 .aar 的 .aar 吗?如果此本地 aar 托管在 Maven Central 或其他远程存储库上会怎样?为什么会有所不同?

android android-gradle-plugin aar

60
推荐指数
9
解决办法
3万
查看次数

检查 AAR 元数据时发现问题:androidx.core:core:1.12.0-alpha01 和 androidx.core:core-ktx:1.12.0-alpha01

我正在开发一个项目,但今天构建不再有效。错误如下:

检查AAR元数据时发现2个问题:

  1. 依赖项“androidx.core:core:1.12.0-alpha01”需要依赖它的库和应用程序根据 Android API 的代号“UpsideDownCake”进行编译。

    :app 目前是针对 android-33 编译的。

    建议的操作:使用不同版本的依赖项“androidx.core:core:1.12.0-alpha01”,或者如果您打算尝试该预览版 SDK,则在 build.gradle 文件中将compileSdkPreview 设置为“UpsideDownCake”。

  2. 依赖项“androidx.core:core-ktx:1.12.0-alpha01”需要依赖它的库和应用程序根据 Android API 的代号“UpsideDownCake”进行编译。

    :app 目前是针对 android-33 编译的。

    建议的操作:使用不同版本的依赖项“androidx.core:core-ktx:1.12.0-alpha01”,或者如果您打算尝试该预览版 SDK,则在 build.gradle 文件中将compileSdkPreview 设置为“UpsideDownCake”。

根据我的研究,我了解到根据官方文档,错误消息的版本是昨天发布的。

以下是项目正在使用的 build.gradle 脚本。在我的 build.gradle 中,我有implementation 'androidx.core:core-ktx:1.9.0'. 我不明白为什么在构建阶段添加另一个版本以及为什么androidx.core:core:1.12.0-alpha01添加。

构建.gradle:

buildscript {

    apply from: './dependencies.gradle'

    repositories {
        google()
        mavenCentral()
        jcenter()
        gradlePluginPortal()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.0'
        classpath 'com.google.gms:google-services:4.3.14'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin_version"
        classpath "com.google.dagger:hilt-android-gradle-plugin:$versions.hilt_android"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
        maven { url "https://maven.google.com" …
Run Code Online (Sandbox Code Playgroud)

android kotlin aar androidx

51
推荐指数
4
解决办法
3万
查看次数