Class 未包含在 aar 中
Class not included in the aar
我正在使用 Android Studio 1.0.1。
我设法在一个项目中配置 Android 库模块,所以它内置在 AAR 中。
我的问题是 AAR 存档中没有我的 class。当我检查 MyProject/MyModule/build/intermediates/classes/debug/my/package/mymodule
时,我可以看到我的 class 已编译:MyClass.class
但是当我进入 AAR(或解压它)时,同一个目录(我指的是 AAR 文件中 classes.jar
中的 my/package/mymodule
)只包含一个文件:BuildConfig.class
为什么我的 class 没有包含在 AAR 中?
可能与 proguard 配置有关我遇到了同样的问题,我通过在 proguard-rules 文件中添加一条规则解决了它。这正是我所做的:
- 添加规则
-keep public class my.package.** { public *;}
proguard-rules.pro文件
- 运行
gradlew assemble
在终端上
之后您将在 youModule/build/outputs/aar/
目录中找到您的 aar 文件
希望对您有所帮助
我一直在摆弄插件,在我的例子中(一个 Kotlin 库)我不小心删除了太多插件。如果您的 *.aar
也是 empty,请确保您至少有这两个集合:
plugins {
id("com.android.library")
id("kotlin-android") // <-- this one was missing
}
我正在使用 Android Studio 1.0.1。
我设法在一个项目中配置 Android 库模块,所以它内置在 AAR 中。
我的问题是 AAR 存档中没有我的 class。当我检查 MyProject/MyModule/build/intermediates/classes/debug/my/package/mymodule
时,我可以看到我的 class 已编译:MyClass.class
但是当我进入 AAR(或解压它)时,同一个目录(我指的是 AAR 文件中 classes.jar
中的 my/package/mymodule
)只包含一个文件:BuildConfig.class
为什么我的 class 没有包含在 AAR 中?
可能与 proguard 配置有关我遇到了同样的问题,我通过在 proguard-rules 文件中添加一条规则解决了它。这正是我所做的:
- 添加规则
-keep public class my.package.** { public *;}
proguard-rules.pro文件 - 运行
gradlew assemble
在终端上
之后您将在 youModule/build/outputs/aar/
目录中找到您的 aar 文件
希望对您有所帮助
我一直在摆弄插件,在我的例子中(一个 Kotlin 库)我不小心删除了太多插件。如果您的 *.aar
也是 empty,请确保您至少有这两个集合:
plugins {
id("com.android.library")
id("kotlin-android") // <-- this one was missing
}