2015-07-03 137 views
0

我在Android Studio中开发了此Android应用程序。一切都很好。
我在Android Studio中添加了一个AppEngine后端模块。一切仍然很棒。在Android应用程序和Google AppEngine之间共享Android库

由于我有时需要在我的应用程序和AppEngine后端之间共享对象(主要是简单的JavaBeans)(认为搜索函数参数,发送更新的对象等),我决定创建一个共享库,App和后端都可以导入,所以它们都引用相同的对象并且交互更简单。

我的一些对象使用Android的特定功能,如Parcelable等不能将从对象中移除。

我在Android Studio中创建了一个简单的“Android库”,并将所有对象放置到此文件夹中。 我将所有我的对象设置为新的“Android库”,作为我的Android应用程序的依赖关系,并且在应用程序构建中可以正常工作。

在这一点上,我首先跑到墙上。 我尝试将“Android库”设置为后端的依赖关系,并且事物横向排列。 当我尝试构建时,收到后端gradle build无法找到“Android库”中需要的唯一Android相关依赖项的消息。 (所以不是我在后端需要的依赖,但是需要并且已经存在于“Android库”中,依赖是“appcompat-v7”。)

所以无论我做什么,构建都表示它需要这依赖,它不能在既不是jcenter地址或mavenCentral地址找到但“Android的图书​​馆”建设是很容易检索和构建依赖


所以我的问题是双重的: 1.可一个Android库与AppEngine共享? 2.如果可以,怎么样?

回答

1

您可以将公共代码提取到另一个Maven/Gradle项目(不是Android库),将它安装到你的本地Maven仓库,并将它添加为两个项目的依赖项。

+0

但由于通用代码依赖于Android平台的一小部分,因此我必须以某种方式“提取”这些部分,这是不可能的。 – Bam

+1

如果是这种情况,我建议重新考虑设计。公共库不应该依赖于GAE或Android。这不仅仅是设计,当一个“特殊”运行时试图加载/运行不适合它的代码时,事情可能真的出错或根本无法工作。如果必要的话,不要被代码重复所吓倒。提取可能的代码(不依赖于任何环境的代码)并复制剩下的代码。如果您需要半重复代码(如GAE Cloud Endpoints代码生成),可以查看代码生成选项。 – Gabriel

+0

我很感谢你的回答和时间。 我的想法和你所建议的一样,并会按照你的说法去做。只提取可以提取的内容,并将剩下的内容留在Android共享库中。 – Bam

相关问题