【发布时间】:2012-02-23 14:49:57
【问题描述】:
我已经构建了一个半推送服务(从集中式 http 服务器签入通知),我想将它分发给几个朋友和客户,这样他们就可以轻松地将类似推送的通知添加到他们的应用程序中,而不需要太多麻烦。
我已经完成了打包 JAR 并将其包含在我的其他一些项目中的工作,但现在我在资源打包方面遇到了障碍 --
- 在我的 PushNotify 项目中,我有一个资源:R.drawable.goldstar
- 我在应用程序中绘制了两次,一次通过引用
R.drawable.goldstar,一次通过引用resources.getIdentifier('goldstar', 'drawable', 'com.com.pushnotify') - 当我将 PushNotify 打包为自己的 APK 时,金星正确出现在两个地方。
- 我在eclipse中右击,将项目导出为JAR文件,从包含的文件中取消选中“ApplicationManifest.xml”,然后点击“完成”。
- 我可以验证当我添加更多可绘制资源时此 JAR 文件的大小会增加。
- 当我在构建路径中打包 DependantApp.apk(包括 PushNotify.jar)时,金星正确出现在两个位置。
- 如果我卸载 PushNotify.apk,金色星星会从 DependantApp.apk 中消失,就好像它们没有与 JAR 一起打包一样;为
getIdentifier('goldstar', 'drawable', 'com.com.pushnotify')返回 0 值。
如何分发带有可绘制资源的 JAR,并让它们出现在依赖的应用程序中?包括我的 JAR 在内的应用永远不需要访问我正在分发的图标,只有我自己的代码才需要。
尽管在我发现的搜索结果中有很多反对意见,我确信这是可能的,因为 a) 我的 JAR 文件在我添加新图像时会增长,并且 b) 我已经包含之前带有图标的 JAR 文件(Airpush 这样做,UrbanAirship 也是如此)。
提前致谢!
【问题讨论】: