Articles of aar

使用.aar NoClassDefFoundError但是Class Exists并且是Dexed

我有几个项目,我建立一个.aar。 然后我将这个.aar导入到/ libs下的Android Studio中。 此依赖项的build.gradle文件如下所示: repositories{ flatDir{ dirs ‘libs’ } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:22.0.0’ compile ‘com.google.android.gms:play-services:7.0.0’ compile ‘com.android.support:multidex:+’ compile(name: ‘customApi-debug’, ext:’aar’) } 由于库非常大,我设置了multiDexEnabled = true。 Android Studio查找库和自动填充function。 构建工作正常,但运行应用程序会出现以下错误: java.lang.NoClassDefFoundError: com.companyx.android.api.ui.vision.metaio.MetaIoView at com.companyx.android.api.ui.vision.metaio.MetaIoView$$InjectAdapter.(MetaIoView$$InjectAdapter.java:29) 我分别对.aar和dex文件进行了解压缩和反汇编,并validation了它所抱怨的类实际存在。 我已经尝试过处理这个问题的现有方法,但它们都没有奏效。 有人经历过这个吗? 提前致谢。

如何使用Gradle将aar文件发布到Apache Archiva

我试图将生成的我的android库的aar文件发布到我的Apache Archiva Maven服务器,但是我还没设法让它工作,因为这些示例已经过时或者它们是用于java而不是用于android 在注意到gradle示例的大多数方法都被弃用之后,我发现了这个新文档: Gradle文档 其中介绍了如何使用新的API,似乎将uploadArchives替换为发布等等…. 所以这就是我到目前为止所得到的: apply plugin: ‘com.android.library’ apply plugin: ‘maven’ apply plugin: ‘maven-publish’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.mycompany.mylibrary” minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } lintOptions { abortOnError false } } dependencies { compile […]

android:允许创建targetActivity位于aar / sdk中的activity-alias

我正在编写SDK并希望开发人员能够创建一个activity-alias其targetActivity设置为我的SDK中的活动。 我这样做是因为我希望他们能够自定义SDK中特定活动的intentfilter。 如果在sdk的清单中有ActivityX,我希望他们能够在他们的应用程序清单中编写这样的activity-alias : … user’s custom intent filter 我遇到的问题是targetActivity有以下限制 : “…必须匹配清单中别名之前的活动元素的name属性。” 这是一个问题,因为无论我将活动放在sdk的清单中的哪个地方,或者我将别名放在示例应用程序的清单中,别名总是在最终合并清单中的活动之前导致INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误。 一个想法是在sdk清单中声明ActivityX之后放置一个没有intentfilter的别名,并希望这两个别名将合并在一起并保持在sdk别名的位置。 但我无法弄清楚如何做到这一点。 可能不起作用的一个原因是两个别名可能无法冲突。 您是否有通过合并解决方案或其他技术解决此问题的想法?

如何将依赖项包含到.aar库中?

我正在使用Android Studio 1.4 我的项目中有一个模块,它在build.gradle中有下一个依赖项: dependencies { provided fileTree(dir: ‘libs’, include: [‘*.jar’]) provided ‘junit:junit:4.12’ apply plugin: ‘com.google.gms.google-services’ provided ‘org.apache.directory.studio:org.apache.commons.io:2.4’ provided ‘com.google.android.gms:play-services:8.1.0’ provided ‘com.fasterxml.jackson.core:jackson-databind:2.2.0’ provided ‘com.fasterxml.jackson.core:jackson-core:2.2.0’ provided ‘com.fasterxml.jackson.core:jackson-annotations:2.2.0’ } 在构建projectn并同步gradle之后,我在我的module / build / ouputs / aar文件夹中获取了lib-release.aar。 比我尝试文件>新模块>导入JAR \ AAR它。 然后,添加后 compile project(‘:mylib-release’) 我在“外部库”树中只获得了没有声明依赖关系的包。 如何通过仅填写我的库来启用这些软件包的自动安装?

Proguard在建造aar时没有保持课程

从这个参考: https://github.com/codepath/android_guides/wiki/Building-your-own-Android-library 我有以下gradle文件: android { compileSdkVersion 25 buildToolsVersion “26.0.2” buildTypes { release { minifyEnabled true consumerProguardFiles ‘consumer-proguard-rules.pro’ } } } 以下proguard文件: -dontobfuscate -optimizations !code/allocation/variable -keep public class * { public protected *; } 但是当我运行’assembleRelease’任务来构建我的发布aar文件时,aar中的所有类都丢失了。 有任何想法吗?

如何将.so文件打包到我的.aar存档中?

我想知道是否可以将我的原生.so文件打包到我的.aar文件中? 如果是这样,.so文件将去哪里,是否有任何我可以阅读的参考文件?

如何使用其文档导出AAR库?

我想知道为什么我的库一旦它以AAR格式构建就丢失了它的文档。 此外,Android Studio缩小了代码,即构建之前的代码总是与内置到AAR格式后的代码不同,没有原始代码。 我希望我的库有自己的文档,并有原始代码。 你可以看到下面的不同: 在建造之前 内置为AAR格式后 文档在哪里?! 此外,您会注意到整个代码确实缩小了,并且不同。 那么,如何在不缩小代码的情况下将AAR库与其文档一起导出?

如何发布Android .aar源码以使Android Studio自动find它们?

我正在将库发布到内部Sonatype Nexus存储库。 Android Studio具有自动查找通过gradle引用的库的正确来源的function。 我将aar的来源作为一个单独的jar发布到nexus。 但Android Studio并没有把它们搞砸。 如何发布源代码以使其在Android Studio中可用?

手动添加带有依赖性pom / iml文件的aar

由于我不能使用私人专家来共享我的图书馆,我正在考虑共享aar并导入另一个项目。 当aar和jar文件不包含任何依赖项时,问题就出现了。 所以一旦我在android studio中手动导入aar(使用Import .JAR / .AA Package)就没有依赖关系,我必须再次手动添加所有依赖项。 我已经通过gradle任务生成了一个pom文件,虽然我找不到任何方法在项目上手动导入它。 在“导入.JAR / .AA包”自动生成的build.gradle文件中: configurations.maybeCreate(“default”) artifacts.add(“default”, file(‘TestSample_1.0.0.aar’)) 有没有办法添加pom / iml文件? 就像是: artifacts.add(“default”, file(‘pomDependencies.xml’))

Android Studio发布版本不会输出aar

我创建了一个非常简单的“Android库”模块,只有一个类可以在调试中构建,构建/输出/ library-debug.aar 但是,当我切换到发布时,即使它说构建成功,aar也不存在。 Android Studio项目只有这个库模块。 谢谢你提前。