簡體   English   中英

Android:在JAR中添加資源文件

[英]Android:add resource file in JAR

我計划在android中創建一個SDK,這意味着將我的類文件和資源(布局)共享給另一個需要它們的應用程序。 如果我將我的應用程序導出為JAR,則它不包含資源文件和R.class。 我知道目前Android不支持通過JAR打包資源文件但是我在網上搜索並找到了一個解決方案,如果使用源代碼編譯我們的資源文件意味着我們可以訪問其他應用程序中的資源。

因此,我以下列方式做到了:

  1. 將所有res文件夾內容復制到我的源文件夾中

    • src - > com.mypackege - > res --->這里我把我的res文件夾
    • 最后我的src文件夾看起來像

    • SRC

      com.mypackage

        >myfile.java drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi com.mypackage.drawable com.mypackage.layout com.mypackage.menu com.mypackage.values 
  2. 我構建我的項目我得到了所有類文件,包括我的bin中的資源和r.class

  3. 然后我通過jar -cvf mysample.jar com / mypackage / *手動創建jar

  4. 最后一個jar包含我的項目在mypackage中的所有類和資源。

然后我將mysample.jar添加到另一個應用程序說testapp ,這里我把JAR放在資產文件夾中(因為布局)並添加到構建路徑。 我還配置了構建路徑

在這個應用程序中,我從mysample.jar調用myfile.class ,這是從該JAR加載布局所需的。

問題是在這里它沒有看到JAR文件下的資源它只看到當前項目res文件夾中的資源而且是NULL pointer Exception

但它從JAR文件調用R.java。 廣告也嘗試將xmlns:custom =“http://schemas.android.com/apk/res-auto”放入我的清單文件中,它也無效。 我希望我能完全解決這個問題,這可能是資源映射問題。 你有什么想法解決這個問題嗎?

你不能在jar中存儲資源。 這是可能的,但它很棘手,所以現在Android只提供Android庫。 否則,您可以單獨使用已編譯的源代碼和資源(通過向您的庫提供資源ID)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM