首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Android库项目重写类

从Android库项目重写类
EN

Stack Overflow用户
提问于 2013-02-19 15:00:28
回答 1查看 1.2K关注 0票数 2

我用类似的代码制作了服务器级Android应用程序,但我需要灵活地定制这些应用程序。我现在的解决方案是,我有一个库-项目,在那里我可以通过扩展类来覆盖项目中的功能。对于下面的示例,我称之为Library Project。P1是一个使用PL定制的项目,P2是另一个使用PL定制的项目。

我现在的问题是,在PL中,我想从StudentPL.java创建一个实例。在P1中,不需要对StudentPL做任何更改,所以编译器应该接受这个类,但是在P2中,我有从StudentPL.java扩展的StudentP2.java。因此,在PL中创建的实例应该是StudentP2.java的一个实例。

我现在的想法是,我制作了一个名为镜像的包,它直接在Project的src文件夹中。在这里,我创建了从mirror.Student.java扩展的类StudentPL.java。在Library-Project中,我现在将Student.java作为一个实例。对于Project P1,不需要进行任何更改。在P2中,我在src文件夹中创建了相同的文件夹镜像,现在我创建了从StudentP2.java扩展的相同的类mirror.Student.java。这样做的想法是,ClassLoader现在从P2加载mirror.Student.java,忽略PL中的mirror.Student.java,但这会导致以下错误:

  • Dex Loader[无法执行dex:多个dex文件定义L镜像/学生;
  • 转换为Dalvik格式失败:无法执行dex:多个dex文件定义了L镜像/学生

下面是我所说的UML:

http://www.koenix-band.ch/images/other/Stackoverflow.gif

也许我应该重写ClassLoader,但我不知道如何做到这一点?有人想办法解决这个问题吗?也许有人有另外的想法,我可以如何定制应用程序。

迈克尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 15:17:07

在我看来,最好用一个MainActivityPL或类似的方法来抽象您的setStudent。大部分活动及其所有逻辑仍将从库中共享,但它将允许您的其他项目通过扩展StudentPL类来使用不同的学生对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14960569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档