2013-03-11 137 views
2

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

因此,對於這個原因,我做到了以下列方式:

  1. 複製所有文件夾水庫到內容我的源文件夾

    • SRC - > com.mypackege - >水庫 - >這裏我把我的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. 和我建立我的項目,我把所有的類文件包括在我的倉資源和 r.class

  3. 那麼我手動創建jar jar -cvf mysample.jar com/mypackage/*

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

然後我添加mysample.jar到另一個應用程序說testapp,在這裏我把資產文件夾中的JAR(因版面的),並添加到構建路徑。另外我還配置了構建路徑

在此應用程序中,我調用mysample.jarmyfile.class,這是從該JAR加載佈局所需的。

的問題是這裏沒有看到JAR下的資源文件,它只能看到在當前項目res文件夾的資源,雖然NULL pointer Exception

但它從JAR文件調用R.java。廣告還試圖把xmlns:custom =「http://schemas.android.com/apk/res-auto」放在我的清單文件中,它也不起作用。 我希望我完全來關閉這個問題,它可能是一個資源映射問題。 你有什麼想法解決這個問題嗎?

回答

1

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

+0

我該如何通過android庫函數將我的資源共享給另一個應用程序 – 2013-03-11 12:05:30

+0

@ Mr.Cool http://stackoverflow.com/questions/7973822/how-to-convert-an-android-library-project-to-an-external-jar看看這裏 – Taras 2013-03-11 12:28:13