【问题标题】:Android :Export Android Project as jarAndroid : 将 Android 项目导出为 jar
【发布时间】:2012-12-24 11:28:47
【问题描述】:

我开发了一个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

【问题讨论】:

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


    【解决方案1】:

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

    只有将 Android 项目设为 Android Library Project 才能使用其中的资源和 .so 文件的唯一方法..

    更新:

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

    【讨论】:

    • 如果你将项目作为Android库项目意味着你只能访问类文件但你不能访问资源文件
    • 我已经包含了 poi.jar 文件来从 xml 文件中读取数据并且它工作正常.....所以你怎么能说我们不能使用外部 jar 文件。 @Mr.Cool 你怎么能使用 jar 文件中的资源......我认为这是不可能的。您只能使用 jar 中的类文件,但不能使用其他资源...您错了。
    • 如果您必须使用可绘制对象和其他资源,那么作为库的 Android 项目非常适合您。因为您可以从该项目访问资源。你没有在你的项目中使用Android Sherlock LibrariesV4 support Libraries吗??
    • @Pragnani - 您确定可以从您的 Android 项目 .jar 文件中访问可绘制对象吗?如果是,那么我想知道路..
    • @user370305 我没说过....不能从jar文件中访问drawables
    【解决方案2】:

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

    【讨论】:

    • @Ayaz Ali Khatri 你错误地理解了我的问题,再读一遍
    【解决方案3】:

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

    1. 生成android aar file

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

      • 将 aar 文件拖到您的项目中,比如说在 PROJECT_ROOT/aars/ 文件夹中
      • 将此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 同步你的 android 项目,玩得开心。

    【讨论】:

      猜你喜欢
      • 2016-01-13
      • 2013-12-02
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2014-05-16
      • 2014-05-21
      • 2018-12-08
      相关资源
      最近更新 更多