2013-01-10 102 views
1

我開發了一個Android項目,(它有一些資源文件和jni部分,還包含一些外部.so文件),我想在另一個Android應用程序中使用它,Android:將Android項目導出爲jar

,如果我做一個項目作爲庫項目,我不能使用的資源文件在另一個項目,所以我在我的項目導出爲罐子,在罐子包含所有下列文件夾

assets 
bin 
com/package containing all classes 
libs/ all .so files 
res 
obj 
META-INF 

在我的另一個應用程序,我把我的jar文件放在lib文件夾中並添加到項目路徑中

問題是,我無法從jar中訪問類和.so文件和資源。 也我試圖把所有文件也放在新的項目庫文件夾中。

我得到了不滿意的鏈接錯誤,不能做到這一點。否則你有什麼想法嗎?

NOTE: i don't want to add the project as Reference Project 

回答

2

首先Android項目不作爲一個簡單的.jar文件當你想使用它的資源。

必由之路你必須做的Android項目作爲Android Library Project利用資源和.so文件從它..

更新:

http://developer.android.com/tools/projects/projects-eclipse.htmlhttp://www.vogella.com/articles/AndroidLibraryProjects/article.html

+0

如果你把項目作爲Android的庫項目表U只能訪問類的文件,但ü不能訪問資源文件 –

+0

我已經包含poi.jar文件從XML文件中讀取數據,並將其工作正常... ..你怎麼能說我們不能使用外部jar文件。 @ Mr.Cool你如何使用jar文件中的資源......我認爲這是不可能的。你只能在jar中使用類文件,而不能使用其他資源......你錯了。 – Pragnani

+0

如果您必須使用drawables和其他資源,那麼Android Project作爲一個庫是適合您的。因爲您可以從該項目訪問資源。你有沒有在你的項目中使用'Android Sherlock Libraries'和'V4 support Libraries'? – user370305

0

Android應用程序與運行.apk文件不是.jar文件

+0

@Ayaz Ali Khatri你錯誤地理解我的問題再讀一遍 –

1

這可以在使用gradle構建項目時完成

  1. 生成android aar file

    • 出口從日食到Android工作室庫項目中,你可能會想看看this
    • 使用gradle這個建立你的Android庫,並找到PROJECT_ROOT /編譯庫AAR文件/ libs /文件夾
  2. 引用你的android項目到這個aar庫

    • 拖動AAR文件到您的項目,讓我們在PROJECT_ROOT/AARS /文件夾說
    • 這組AAR文件作爲Maven的回購, 在您的項目gradle這個build文件(PROJECT_ROOT /添加的build.gradle這些代碼)

      repositories { 
          mavenCentral() 
          flatDir { 
           dirs 'aars' 
          } 
      } 
      
    • 參考AAR的圖書館,讓說你的庫包是com.example.library,版本是1.0(你會發現你的庫項目AndroidManifest文件)和Android AAR文件名裏是MYLIB。AAR,然後將這些代碼內的相關模塊

      compile 'com.example.library:mylib:[email protected]' 
      
  3. gradle這個同步您的Android項目和樂趣。