我正在创建一个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());
}
答案 0 :(得分:1)
仅在编译期间读取AAR库。当您构建使用该库的应用程序时,AAR被“包含”并与应用程序代码合并,因此运行时的PackageName是该应用程序之一,而不是您的库之一。登录AAR文件是为了使开发人员可以确定该文件的来源,而无需其他任何操作。在运行时,签名会在构建过程后丢失。
答案 1 :(得分:1)
您可以通过访问.aar库中的类来简单地获取包名称。假设您的库中有一个名为Sample.java
的类,那么您可以像这样获得包名称:
String packageName = Sample.class.getPackage().getName();