我已经计划在android中创建一个SDK,这意味着将我的类文件和资源(布局)共享到需要它们的另一个应用程序。如果我将我的应用程序导出为JAR,它不包含资源文件和R.class。我知道目前Android不支持通过JAR打包资源文件,但是我搜索了网络并找到了一个解决方案,如果使用源代码编译我们的资源文件意味着我们可以在其他应用程序中访问资源。Android:在JAR中添加资源文件
因此,对于这个原因,我做到了以下列方式:
复制所有文件夹水库到内容我的源文件夹
- SRC - > com.mypackege - >水库 - >这里我把我的res文件夹
最后我的src文件夹看起来像
SRC
com.mypackage
>myfile.java drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi com.mypackage.drawable com.mypackage.layout com.mypackage.menu com.mypackage.values
和我建立我的项目,我把所有的类文件包括在我的仓资源和 r.class
那么我手动创建jar jar -cvf mysample.jar com/mypackage/*
最终jar包含我的项目的所有类和资源在我的包的 mypackage中。
然后我添加mysample.jar
到另一个应用程序说testapp
,在这里我把资产文件夹中的JAR(因版面的),并添加到构建路径。另外我还配置了构建路径
在此应用程序中,我调用mysample.jar
的myfile.class
,这是从该JAR加载布局所需的。
的问题是这里没有看到JAR下的资源文件,它只能看到在当前项目res文件夹的资源,虽然NULL pointer Exception
但它从JAR文件调用R.java。广告还试图把xmlns:custom =“http://schemas.android.com/apk/res-auto”放在我的清单文件中,它也不起作用。 我希望我完全来关闭这个问题,它可能是一个资源映射问题。 你有什么想法解决这个问题吗?
我该如何通过android库函数将我的资源共享给另一个应用程序 – 2013-03-11 12:05:30
@ Mr.Cool http://stackoverflow.com/questions/7973822/how-to-convert-an-android-library-project-to-an-external-jar看看这里 – Taras 2013-03-11 12:28:13