2012-10-19 24 views
3

我在Android應用程序中使用Jar(它位於libs文件夾中)。 Jar不包含任何Android資源或類似的東西,但只是簡單的Java類。當我的Android應用程序使用Jar時,讀取我自己的Jar的清單

現在,我想的Jar知道哪個版本,它目前在清單,以便在發生在罐異常的情況下,我知道是什麼版本的Jar造成的除外。

出於某種原因,我似乎無法做到這一點... 我見過這similar question和許多其他人,雖然這工作時,我在一個簡單的Java應用程序中使用Jar,它doesn在android應用程序中使用時。 我試着做這個

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

或本

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

獲取清單,但我從來沒有得到清單我的罐子。

任何幫助將不勝感激。

+0

雖然你可以或許獲得APK的版本,目前還不清楚,你怎麼能夠讓瓶子的版本,因爲罐子不作爲編譯包一個獨立的實體生存。你可以將它嵌入到某種常量場中嗎? –

回答

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

您可以用上面的方法來獲得從清單應用程序的版本。

+0

BuildConfig.VERSION –

相關問題