我已下载Android system application
源代码。
当我在eclipse中导入项目并尝试在模拟器中运行它时,它会显示signature error
。我认为这是因为清单中的软件包名称被假定为与手机中已安装的任何应用程序不同,但当我尝试更改清单文件中的软件包名称时,自动生成的R.java文件将被删除。
现在我的问题是
如何避免此签名不匹配错误?
如何修改清单文件中的包名,以便不删除R.java文件?
或者我怎样才能简单地从eclipse安装android系统应用程序?
答案 0 :(得分:1)
为什么不尝试重新创建整个Android应用程序?我的意思是,既然你已经下载它,只需创建一个新的空白Android应用程序并创建必要的类,xmls,更改为清单文件并复制您拥有的代码并将其粘贴到新的代码中。有了这个,您将能够逐个查看代码的工作方式,并按照您创建代码的方式对其进行调试。希望这有点帮助。
答案 1 :(得分:1)
要进行系统应用程序,您的应用程序必须具有与真实设备匹配的产品签名密钥(签名)。该密钥位于\ build \ target \ product \ security \
中答案 2 :(得分:1)
引自https://stackoverflow.com/a/9645224/1163019
“如果您需要signatureOrSystem权限,则只需要将其置于系统映像上;您无需使用任何特殊证书进行签名。您可以一次性执行此操作(直到您退出模拟器) )像这样:“
> adb root
> adb remount
> adb push /path/to/My.apk /system/app/My.apk
您可以使用“Android工具”在eclipse中更新软件包名称。右键单击项目,选择“Android Tools”下的“重命名应用程序包”。那应该根据需要重构代码。
答案 3 :(得分:1)
好吧,我已经明白了。
它提供了signature error
,因为清单文件中的包名称即com.android.inputmethods.latin
与已安装的Android默认Android键盘匹配。所以我需要更改清单文件中的包名称。我改变了,但随后出现了一个新问题,R.java
文件被自动删除了。
之所以发生这种情况,是因为我更改了包名称,我需要在某些XML文件中更新它。 所以逻辑上直到我这样做,XML文件中存在一些错误。
当XML文件中没有错误时,会自动生成R.java
文件。
所以当我更新XML文件时修复了那里的错误,自动生成R.java文件。
希望这有助于某人:)
答案 4 :(得分:1)
adb push myApk.apk /system/app