Android:将Android项目导出为jar

时间:2013-01-10 06:08:09

标签: java android jar android-ndk java-native-interface

我开发了一个Android项目,(它有一些资源文件,jni部分,还包含一些外部.so文件),我想在另一个Android应用程序中使用,

如果我将项目作为库项目我不能使用另一个项目中的资源文件,那么我将我的项目导出为jar,在包含所有后续文件夹的jar中

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

在我的另一个应用程序中,我将我的jar文件放在lib文件夹中并添加到项目路径

问题是,我无法从jar访问类和.so文件和资源。 而且我也尝试将所有so文件放在新项目的libs文件夹中。

我得到了不满意的链接错误,不可能这样做。或者你有什么想法吗?

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

3 个答案:

答案 0 :(得分:2)

首先,所有Android项目都不能用作简单.jar文件,因为您想要使用它的资源。

Only Way您必须将Android Project设为Android Library Project才能使用资源和.so文件。

<强>更新

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

答案 1 :(得分:1)

使用gradle构建项目时可以这样做

  1. 生成android aar file

    • 将你的图书馆项目从eclipse导出到android studio,你可能想看this
    • 使用gradle构建您的Android库,并在PROJECT_ROOT / build / libs /文件夹中找到库aar文件
  2. 将您的Android项目引用到此aar库

    • 将aar文件拖到项目中,让我们说PROJECT_ROOT / aars / folder
    • 将此aar文件设置为maven repo, 在项目gradle构建文件(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:1.0@aar'
      
  3. gradle sync你的android项目,玩得开心。

答案 2 :(得分:0)

android应用程序使用.apk文件运行而不是.jar文件