2013-01-10 68 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项目和乐趣。