将类添加到系统Android包并使用包方法

将类添加到系统Android包并使用包方法,android,Android,我想在android.text包中添加一个新类。这是对SpannableStringBuilder的一点修改,它将优化我正在构建的复杂解析器 我复制了SpannableStringBuilder源代码,并将其重命名为SpannableStringBuilderOptimized,并在同一个android.text包中声明它 但是,eclipse不允许访问这个新类中的包方法、类和接口。例如,这个类调用TextUtils.get,它在同一个android.text中具有包访问权限,但eclipse说

我想在android.text包中添加一个新类。这是对SpannableStringBuilder的一点修改,它将优化我正在构建的复杂解析器

我复制了SpannableStringBuilder源代码,并将其重命名为SpannableStringBuilderOptimized,并在同一个android.text包中声明它

但是,eclipse不允许访问这个新类中的包方法、类和接口。例如,这个类调用TextUtils.get,它在同一个android.text中具有包访问权限,但eclipse说找不到该方法。我在一些界面上也有类似的问题,比如图形操作


这可以实现吗?

您确定Eclipse中的构建目标项目>属性>Android与您正在使用的源代码的API级别匹配吗?我想是的,都是目标4.0.3,但如果您认为这是问题所在,我会仔细检查,也许SpannableStringBuilder的源代码来自衍生的android项目,而不是官方项目。如果我们排除这个问题,它会工作吗?可能SpannableStringBuilder的源代码来自派生的android项目,而不是官方项目——或者它来自4.1、4.2、4.3或4.4,并且代码自4.0.3以来发生了更改。如果我们排除这个问题,它会起作用吗任何未标记为@hide的内容都应根据正常的Java包访问规则进行访问,AFAIK。谢谢!我确信它来自于4.0.3,但是最近在互联网上有大量的android分叉和存储库,谁知道它是哪一个4.0.3。。我在从官方AOSP源代码获取后重试。但是,请记住,如果您所依赖的任何东西(例如,获取)在早期或更高版本中不同,那么您的代码将仅在4.0.3设备上工作。也许这就是你现在所需要的。否则,最好将类移动到自己的包中,例如rupps.android.text,并修复所有内容,以避免引用不属于android SDK公共API的内容。