如何获取AAR文件的包名?

时间:2019-01-01 08:56:57

标签: android android-library aar package-name

我正在创建一个aar库,并且需要获得aar packagename来标记aar文件。

我正在尝试下面的代码,但是getPackageName()方法未返回aar packagename

Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature sig : sigs){
    Log.i("MyApp", "Signature hashcode : " + sig.hashCode());
}

2 个答案:

答案 0 :(得分:1)

仅在编译期间读取AAR库。当您构建使用该库的应用程序时,AAR被“包含”并与应用程序代码合并,因此运行时的PackageName是该应用程序之一,而不是您的库之一。登录AAR文件是为了使开发人员可以确定该文件的来源,而无需其他任何操作。在运行时,签名会在构建过程后丢失。

答案 1 :(得分:1)

您可以通过访问.aar库中的类来简单地获取包名称。假设您的库中有一个名为Sample.java的类,那么您可以像这样获得包名称:

String packageName = Sample.class.getPackage().getName();