2

我已经下载了一个 Androidsystem application源代码。

当我在 Eclipse 中导入项目并尝试在模拟器中运行它时,它会显示signature error. 我认为这是因为清单中的包名被认为与手机中已经安装的任何应用程序不同,但是当我尝试更改清单文件中的包名时,自动生成的 R.java 文件被删除。

现在我的问题是

  1. 如何避免此签名不匹配错误?

  2. 如何修改清单文件中的包名称,以免 R.java 文件被删除?

或者我怎样才能简单地从 Eclipse 中获取 android System 应用程序?

4

5 回答 5

1

为什么不尝试重新创建整个 Android 应用程序?我的意思是,既然你下载了它,只需创建一个新的空白 android 应用程序并创建必要的类、xmls、更改清单文件并复制你拥有的代码并将其粘贴到新的代码中。有了这个,您将能够一一看到代码是如何工作的,并按照您创建它的方式对其进行调试。希望这会有所帮助。

于 2012-08-22T08:18:49.547 回答
1

要进行系统应用,您的应用程序必须具有与真实设备匹配的产品签名密钥(签名)。该密钥位于 \build\target\product\security\

于 2012-08-22T08:23:23.100 回答
1

引用自https://stackoverflow.com/a/9645224/1163019

“如果你想要一个签名或系统权限,你只需要放在系统映像上;你不需要用任何特殊的证书签名。你可以像这样一次性完成(直到你退出模拟器) :"

> adb root
> adb remount
> adb push /path/to/My.apk /system/app/My.apk

您可以使用“Android 工具”在 Eclipse 中更新包名称。右键单击项目,选择“Android 工具”下的“重命名应用程序包”。那应该根据需要重构代码。

于 2012-08-22T08:24:29.140 回答
1

好吧,我已经想通了。

这是signature error因为清单文件中的包名称com.android.inputmethods.latin与已安装的 android 的默认 Android 键盘匹配。所以我需要更改清单文件中的包名。我改变了那个,但是又出现了一个新问题,R.java文件被自动删除了。

发生这种情况是因为,当我更改包名称时,我需要在一些 XML 文件中更新它。从逻辑上讲,直到我这样做之前,XML 文件中存在一些错误。

And the R.java file is generated automatically when there's no error in XML files. So when I updated the XML files & fixed the error in there, R.java file generated automatically.

Hope this helps someone :)

于 2012-08-24T06:29:23.420 回答
1
adb push myApk.apk /system/app
于 2013-03-14T11:55:56.853 回答