Java 读我自己的罐子';在Android应用程序中使用Jar时
我在Android应用程序中使用了一个Jar(在libs文件夹中)。 Jar不包含任何Android资源或类似的东西,只包含简单的Java类 现在,我想让Jar知道它当前在清单中的版本,以便在Jar中发生异常的情况下,我知道是哪个版本的Jar导致了异常 由于某种原因,我似乎无法做到这一点。。。 我已经看到了这一点和许多其他的,当我在一个简单的Java应用程序中使用Jar时,这一点是有效的,但在android应用程序中使用Jar时却不起作用。 我试着通过这样做来获取舱单Java 读我自己的罐子';在Android应用程序中使用Jar时,java,android,jar,classloader,manifest.mf,Java,Android,Jar,Classloader,Manifest.mf,我在Android应用程序中使用了一个Jar(在libs文件夹中)。 Jar不包含任何Android资源或类似的东西,只包含简单的Java类 现在,我想让Jar知道它当前在清单中的版本,以便在Jar中发生异常的情况下,我知道是哪个版本的Jar导致了异常 由于某种原因,我似乎无法做到这一点。。。 我已经看到了这一点和许多其他的,当我在一个简单的Java应用程序中使用Jar时,这一点是有效的,但在android应用程序中使用Jar时却不起作用。 我试着通过这样做来获取舱单 Thread.curren
Thread.currentThread().getContextClassLoader().getResources("META-INF/MANIFEST.MF");
还是这个
MyClass.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
但是我从来没有得到我的罐子的清单
任何帮助都将不胜感激。我把它放在我的子类android.app.Application中,但你可以在任何有上下文的地方使用它。只需将getPackageManager()更改为context.getPackageManager()。
您可以使用上述方法从清单中获取应用程序的版本。虽然您可能可以获取APK的版本,但不清楚如何获取jar的版本,因为jar在编译包中不能作为一个独立的实体存在。你能把它作为某种常量字段嵌入吗?
public int getVersion() {
int v = 0;
try {
v = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
// Huh? Really?
}
return v;
}