gpt4 book ai didi

android - 生成包含所有依赖项的 AAR 文件

转载 作者:行者123 更新时间:2023-11-29 16:50:38 25 4
gpt4 key购买 nike

我在生成包含所有必需依赖项的 AAR 文件时遇到问题。以下是 build.gradle 的配置:

apply plugin: 'com.android.library'

android {
compileSdkVersion 25
buildToolsVersion '25.0.3'

defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "3.5.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

}

dependencies {
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.facebook.android:facebook-android-sdk:4.14.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.google.code.gson:gson:2.8.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'com.google.android.gms:play-services:11.0.4'
}

我正在尝试使用"file">“新建模块”>“导入 .JAR/.AAR 包”添加生成的 AAR 文件。但是,它无法包含所有外部依赖项,具体来说是 Facebook 和 Google Play 服务。错误说:

Error:No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').

而且,它无法在 AndroidManifest.xml 中找到 com.facebook.FacebookActivity。

请帮我解决这个问题。

更新

尝试使用 pom.xml 构建,但没有用。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.loginradius.androidsdk</groupId>
<artifactId>loginradius-android-sdk</artifactId>
<version>3.5.0</version>
<packaging>aar</packaging>

<properties>
<!-- use UTF-8 for everything -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

<dependencies>
<dependency>
<groupId>com.facebook.android</groupId>
<artifactId>facebook-android-sdk</artifactId>
<version>4.27.0</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>google-play-services</artifactId>
<version>r22</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.9.0-rc.1</version>
<configuration>
<sdk>
<platform>19</platform>
</sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>

</project>

最佳答案

如果您打算发布 lib,最好不要在打包的 aar 中包含依赖库,而是在 的构建脚本中添加在 lib 构建脚本中找到的相同 compile 依赖项应用程序本身:

app build.gradle:

dependencies {
compile ':my-lib'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.facebook.android:facebook-android-sdk:4.14.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.google.code.gson:gson:2.8.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'com.google.android.gms:play-services:11.0.4'
}

这样一来,您图书馆的用户在使用公共(public)图书馆时就不会像您的图书馆那样面临合并冲突,gradle 会自动解决这些冲突。

关于android - 生成包含所有依赖项的 AAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com