当Jar用于Android应用程序时,阅读我自己的Jar的清单

时间:2012-10-19 08:43:05

标签: java android jar classloader manifest.mf

我在我的Android应用程序中使用了一个Jar(它位于libs文件夹中)。 Jar不包含任何Android资源或类似的东西,只是简单的Java类。

现在,我希望Jar知道它在清单中当前有哪个版本,以便在Jar中发生异常的情况下,我知道Jar的哪个版本导致异常。

出于某种原因,我似乎无法做到...... 我已经看到了这个similar question和其他许多人,虽然这在我在一个简单的Java应用程序中使用Jar时有效,但它在Android应用程序中使用时却没有。 我试过通过这样做获得清单

Thread.currentThread().getContextClassLoader().getResources("META-INF/MANIFEST.MF");

或者

MyClass.class.getClassLoader().getResources("META-INF/MANIFEST.MF");

但我从来没有得到我的罐子的清单。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

我把它放在我的子类android.app.Application中,但你可以在任何有上下文的地方使用它。只需将getPackageManager()更改为context.getPackageManager()。

public int getVersion() {
    int v = 0;
    try {
        v = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
    } catch (NameNotFoundException e) {
        // Huh? Really?
    }
    return v;
}

您可以使用上述方法从清单中获取应用程序的版本。