如何获取aar文件的包名?
How to get packagename of aar file?
我正在创建一个 aar
库,我需要获取 aar
packagename
以获得 aar
文件的标志。
我正在尝试下面的代码,但是 getPackageName()
方法没有 return aar
packagename
Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature sig : sigs){
Log.i("MyApp", "Signature hashcode : " + sig.hashCode());
}
AAR 库仅在编译期间读取。当您构建一个使用该库的应用程序时,AAR 是 "included" 并与应用程序代码合并,因此运行时的 PackageName 是应用程序之一,而不是您的库之一。登录 AAR 文件用于让开发人员确定该文件的来源,仅此而已。在运行时,签名在构建过程后丢失。
您可以通过访问 .aar 库中的 class 来简单地获取包名称。假设你在名为Sample.java
的库中有一个class,那么你可以这样获取包名:
String packageName = Sample.class.getPackage().getName();
我正在创建一个 aar
库,我需要获取 aar
packagename
以获得 aar
文件的标志。
我正在尝试下面的代码,但是 getPackageName()
方法没有 return aar
packagename
Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature sig : sigs){
Log.i("MyApp", "Signature hashcode : " + sig.hashCode());
}
AAR 库仅在编译期间读取。当您构建一个使用该库的应用程序时,AAR 是 "included" 并与应用程序代码合并,因此运行时的 PackageName 是应用程序之一,而不是您的库之一。登录 AAR 文件用于让开发人员确定该文件的来源,仅此而已。在运行时,签名在构建过程后丢失。
您可以通过访问 .aar 库中的 class 来简单地获取包名称。假设你在名为Sample.java
的库中有一个class,那么你可以这样获取包名:
String packageName = Sample.class.getPackage().getName();