开发Android 9.0 eSIM LPA(系统应用程序)
尝试用新的Pie为eSIM开发android LPA系统应用程序 文档说要扩展抽象的EuiccService类。但是这个类不在官方SDK中,文档中的链接只是指向android源repo中相应的文件 我尝试将此文件/类用作依赖项,但它引用了其他内部android类/注释,并导致生成/IDE错误 有人知道如何使用这个吗 我真的需要从中提取android src代码并引用必需的类吗 编辑:我想我已经解决了这个问题,找到了一些可能的解决方案,但它们有点麻烦。从这里使用了android.jar:(包含带有隐藏API和内部资源的修改后的android.jar)。当我替换整个文件并导致奇怪的构建错误时,它不起作用,但我手动将android\service\euicc\文件夹转移到android-28 sdk的原始android.jar,它工作得很好(类可用,apk构建没有问题)。而且无需浪费时间拉取和构建AOSP 编辑#2:显然不是完全可修复的atm。android gradle插件(至少3.2.x-3.3.x)存在一个问题,在完全同步过程中,一些构建任务会从android.jar生成模拟类,如果修改了,该过程就会失败(讨论如下:)。错误如下所示: 无法使用transform MockableJarTransform将文件“android.jar”转换为匹配属性{artifactType=android mockable jar,returnDefaultValues=false} 虽然不方便,但有一个解决方法:开发Android 9.0 eSIM LPA(系统应用程序),android,Android,尝试用新的Pie为eSIM开发android LPA系统应用程序 文档说要扩展抽象的EuiccService类。但是这个类不在官方SDK中,文档中的链接只是指向android源repo中相应的文件 我尝试将此文件/类用作依赖项,但它引用了其他内部android类/注释,并导致生成/IDE错误 有人知道如何使用这个吗 我真的需要从中提取android src代码并引用必需的类吗 编辑:我想我已经解决了这个问题,找到了一些可能的解决方案,但它们有点麻烦。从这里使用了android.jar:(包含带有
当您需要对项目进行完全同步时,请将android.jar替换为原始的、运行同步的、恢复修改后的android.jar,IDE现在将运行索引,并且在下次完全同步之前,类将在构建工作中再次可用。
如果/当此帖子已修复或找到新解决方案时,将更新此帖子 编辑#3:这里可能是EuiccService案例的最终解决方案(结果非常明显):
不要将“android/service/euicc”文件夹添加到android.jar中,只需将其放在单独的库中,并将其作为compileOnly依赖项添加即可。由于这些类不在SDK中,因此lib不应引起冲突(如果您需要使用修改后的框架或访问现有类中的隐藏API,则会出现这种情况)。如果您要创建系统应用程序,您将通过以下几种方式进行:
- 您可以通过引用调用系统API的一部分(例如方法)
- 您可以将应用程序作为AOSP项目的一部分(下载AOSP代码,并将您的应用程序作为软件包/apps/的一部分介绍)
- 您可以通过引用调用系统API的一部分(例如方法)
- 您可以将应用程序作为AOSP项目的一部分(下载AOSP代码,并将您的应用程序作为软件包/apps/的一部分介绍)