我正在调整我的Android应用程序,我在真实设备上尝试它(在eclipse中运行应用程序)并且一切正常。因此,当我对我的更改感到满意时,我打开了Manifest以修改发布它的版本,但是在Manifest中没有任何更改,行中出现错误:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
错误是:
Permission is only granted to system apps
这怎么可能?我用这条线多次构建了我的应用程序。
答案 0 :(得分:18)
感谢所有人。我用
解决了这个奇怪的问题 Project > Clean
现在一切都好了!
答案 1 :(得分:2)
你可能不会自己安装软件包,甚至不会问这个问题。
为此目的使用Intent
:
Intent installIntent = new Intent(Intent.ACTION_VIEW );
installIntent.setDataAndType(
Uri.parse("file://" + context.getFilesDir().getAbsolutePath() + "/" + file_name_to_install),
"application/vnd.android.package-archive");
startActivity(installIntent);
如果您使用的是Eclipse,很可能它使用了Manifest的旧/过时版本,当您打开它时,重新加载更改并显示错误消息。只需删除违规许可并使用Intents。
答案 2 :(得分:2)
如果您已经更改了lint首选项,清洁将起作用。否则请查看以下解决方案。
Permission is only granted to system app
它表示要更改您的Lint设置
在Eclipse中:
窗口 - &gt;偏好 - &gt; Android - &gt; Lint错误检查。
在列表中找到ID = ProtectedPermission
的条目。将Severity设置为低于Error的值。这样您仍然可以使用Eclipse编译项目。
在Android Studio中:
File -> Settings -> Inspections
在Android Lint
下,找到Using system app permission
。取消选中该复选框或选择低于错误的严重性。