所以我创建了一个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) 我的用例如下:
我的问题是这是否可能?我在堆栈溢出时看了一些类似的问题-我得到了以下可能的解决方案-但似乎都不适合:
因此,再次重申基本要求是:
考虑到我提到的限制,有什么方法可以实现它-不一定必须通过合并aar。
以下可能/是否有意义?
android dependency-management gradle android-studio android-gradle-plugin
我正在使用另一个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) 我正在努力构建一个可以在其他应用程序中使用的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依赖项,但底线是相同的 - 找不到源代码.
transitive依赖项.我们还能做些什么吗?
我有一个库项目(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 Studio 1.2
我创建了一个私有库,我想在另一个应用程序中使用它.
要使用它我创建一个AAR文件,但这个AAR不起作用.我的库中有一个对AAR文件的依赖.
AAR文件不依赖?
如果我使用jar,我包括创建所有依赖项,项目工作正常.
注意 :
我知道如何导入AAR文件.问题是在AAR中使用AAR ..
谢谢.
我有一个Android Studio库项目,它取决于另一个库项目.
顶级项目依赖于第二个库项目的代码和资源.
在客户端应用程序中仅使用顶级库项目.aar时,找不到第二个库项目中的资源.
那么在这种情况下我们是否必须始终使用2个.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 本身。
我错过了什么吗?
谢谢阿拜