1

我开发了一个 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 文件和资源。而且我还尝试将所有这些文件也放入新的项目库文件夹中。

我收到不满意的链接错误,不可能这样做。否则你有什么想法吗?

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

3 回答 3

2

首先,Android 项目不能用作简单.jar文件,因为您想使用其中的资源。

唯一的方法是您必须将 Android 项目设为Android Library Project使用其中的资源和.so文件。

更新:

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

于 2013-01-10T06:11:44.603 回答
0

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

于 2013-01-10T06:15:03.767 回答
0

这可以在使用 gradle 构建项目时完成

  1. 生成android aar文件

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

    • 将 aar 文件拖到您的项目中,比如说在 PROJECT_ROOT/aars/ 文件夹中
    • 将此 aar 文件设置为 maven 存储库,将这些代码添加到您的项目 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 同步您的 android 项目并玩得开心。

于 2014-05-21T13:24:27.900 回答