3

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

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

出于某种原因,我似乎无法做到......我已经看到了这个类似的问题和许多其他问题,虽然当我在一个简单的 Java 应用程序中使用 Jar 时这有效,但在使用时却不起作用在一个安卓应用程序中。我已经尝试通过这样做来获取清单

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

或这个

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

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

任何帮助将不胜感激。

4

1 回答 1

-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;
}

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

于 2014-04-16T17:18:06.100 回答