标签:inline term port 令行 mpi alt 属性 ict ace
还存在一个用于创建 Java 库的选项,可以构建传统的 JAR 文件。尽管 JAR 文件在大多数项目中都非常实用(尤其在您希望与其他平台共享代码时),但这种文件不允许您包含 Android 资源或清单文件,而后者对于 Android 项目中的代码重用非常有用。因此,本指南将侧重论述创建 Android 库。
还存在一个用于创建 Java 库的选项,可以构建传统的 JAR 文件。尽管 JAR 文件在大多数项目中都非常实用(尤其在您希望与其他平台共享代码时),但这种文件不允许您包含 Android 资源或清单文件,而后者对于 Android 项目中的代码重用非常有用。因此,本指南将侧重论述创建 Android 库。
https://github.com/baiqiantao/aartest.git
https://github.com/baiqiantao/aartest.git
D:\aartest
D:\aartest
//********************************************************************** 打包发布
apply plugin: ‘maven‘
uploadArchives {
def GITHUB_REPO_PATH = "D:\\aartest" // 从Github上clone下来的项目的本地地址,也是要保存的生成的aar目录的地址
repositories.mavenDeployer {
repository(url: "file://${file(GITHUB_REPO_PATH).absolutePath}")
pom.project { //引用时的格式为【implementation ‘com.bqt.aartest:blibrary:1.0.0‘】
groupId ‘com.bqt.aartest‘
artifactId ‘blibrary‘
version ‘1.0.0‘
}
}
}
// 和源代码一起打包
task androidSourcesJar(type: Jar) {
classifier = ‘sources‘
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
//********************************************************************** 打包发布
apply plugin: ‘maven‘
uploadArchives {
def GITHUB_REPO_PATH = "D:\\aartest" // 从Github上clone下来的项目的本地地址,也是要保存的生成的aar目录的地址
repositories.mavenDeployer {
repository(url: "file://${file(GITHUB_REPO_PATH).absolutePath}")
pom.project { //引用时的格式为【implementation ‘com.bqt.aartest:blibrary:1.0.0‘】
groupId ‘com.bqt.aartest‘
artifactId ‘blibrary‘
version ‘1.0.0‘
}
}
}
// 和源代码一起打包
task androidSourcesJar(type: Jar) {
classifier = ‘sources‘
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
gradlew uploadArchives
x
gradlew uploadArchives
Executing tasks: [uploadArchives]
...
BUILD SUCCESSFUL in 6s
26 actionable tasks: 23 executed, 3 up-to-date
16:18:38: Task execution finished ‘uploadArchives‘.
x
Executing tasks: [uploadArchives]
...
BUILD SUCCESSFUL in 6s
26 actionable tasks: 23 executed, 3 up-to-date
16:18:38: Task execution finished ‘uploadArchives‘.
allprojects {
repositories {
...
maven { url "https://raw.githubusercontent.com/baiqiantao/aartest/master" } //baiqiantao 为用户名,aartest为项目名,其他为固定值
}
}
allprojects {
repositories {
...
maven { url "https://raw.githubusercontent.com/baiqiantao/aartest/master" } //baiqiantao 为用户名,aartest为项目名,其他为固定值
}
}
implementation ‘com.bqt.aartest:blibrary:1.0.0‘
implementation ‘com.bqt.aartest:blibrary:1.0.0‘
startActivity(new Intent(this, AARActivity.class));//库中的组件
AARUtils.showToast(this, "库中的方法");
imageView.setImageResource(R.drawable.icon_aar);//库中的资源
x
startActivity(new Intent(this, AARActivity.class));//库中的组件
AARUtils.showToast(this, "库中的方法");
imageView.setImageResource(R.drawable.icon_aar);//库中的资源
include ‘:app‘, ‘:my-library-module‘
include ‘:app‘, ‘:my-library-module‘
implementation project(":my-library-module")
implementation project(":my-library-module")
ps:可能你会遇到类似如下错误提示:
Manifest merger failed : Attribute application@icon value=(@drawable/icon) from AndroidManifest.xml:6:9-38
is also present at [:testaar] AndroidManifest.xml:13:9-43 value=(@mipmap/ic_launcher).
Suggestion: add ‘tools:replace="android:icon"‘ to <application> element at AndroidManifest.xml:5:5-17:19 to override.
这个原因就是合并清单文件时 merger 冲突,按照提示修改即可。
ps:可能你会遇到类似如下错误提示:
Manifest merger failed : Attribute application value=(/icon) from AndroidManifest.xml:6:9-38
is also present at [:testaar] AndroidManifest.xml:13:9-43 value=(/ic_launcher).
Suggestion: add ‘tools:replace="android:icon"‘ to <application> element at AndroidManifest.xml:5:5-17:19 to override.
这个原因就是合并清单文件时 merger 冲突,按照提示修改即可。
<resources>
<public name="mylib_app_name" type="string"/>
<public name="mylib_public_string" type="string"/>
</resources>
<resources>
<public name="mylib_app_name" type="string"/>
<public name="mylib_public_string" type="string"/>
</resources>
android {
defaultConfig {
consumerProguardFiles ‘lib-proguard-rules.txt‘
}
}
android {
defaultConfig {
consumerProguardFiles ‘lib-proguard-rules.txt‘
}
}
/AndroidManifest.xml
/classes.jar
/res/
/R.txt
/public.txt
/AndroidManifest.xml
/classes.jar
/res/
/R.txt
/public.txt
/assets/
/libs/name.jar
/jni/abi_name/name.so (其中 abi 名称 是 Android 支持的 ABI 之一)
/proguard.txt
/lint.jar
/assets/
/libs/name.jar
/jni/abi_name/name.so (其中 abi 名称 是 Android 支持的 ABI 之一)
/proguard.txt
/lint.jar
标签:inline term port 令行 mpi alt 属性 ict ace
原文地址:https://www.cnblogs.com/baiqiantao/p/9391707.html