Android RecoverySystem.installPackage java.lang.NullPointerException
我正在玩AOSP,并尝试应用OTA软件包 1) 。我为Google Pixel构建了AOSP并安装了它 2) 。我创建了一个简单的应用程序,下载OTA包,并尝试应用它 (基于本文:) 我打电话来Android RecoverySystem.installPackage java.lang.NullPointerException,android,android-source,ota,android-rom,Android,Android Source,Ota,Android Rom,我正在玩AOSP,并尝试应用OTA软件包 1) 。我为Google Pixel构建了AOSP并安装了它 2) 。我创建了一个简单的应用程序,下载OTA包,并尝试应用它 (基于本文:) 我打电话来 RecoverySystem.installPackage(getContext(),文件),我明白了 java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.os.IRecoverySyst
RecoverySystem.installPackage(getContext(),文件)代码>,我明白了
java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.os.IRecoverySystem.setupBcb(java.lang.String)' on a null object reference
at android.os.RecoverySystem.setupBcb(RecoverySystem.java:895)
at android.os.RecoverySystem.installPackage(RecoverySystem.java:496)
at android.os.RecoverySystem.installPackage(RecoverySystem.java:421)
有谁能告诉我如何修复它吗?据我所知,您的错误来自这段代码:
在RecoverySystem.java中:
RecoverySystem rs = (RecoverySystem) context.getSystemService(
Context.RECOVERY_SERVICE);
if (!rs.setupBcb(command)) {
throw new IOException("Setup BCB failed");
}
在第一段代码(if求值)中,您的错误是rs
,它的mService
成员为null
。在“setupBcb”方法中使用。
因此,您正在使用的上下文似乎无法以某种方式访问context.RECOVERY\u服务
您正在使用活动上下文吗?我想尝试一下git应用程序上下文。这是一个旧线程,但即使在设置了所需的权限并将apk文件放入/system/app/myapp之后,我在Android 7.1上也遇到了完全相同的问题。我通过将这一行添加到AndroidManifest.xml中解决了这个问题
android:sharedUserId=“android.uid.system”
我的清单文件是这样的-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapp"
android:sharedUserId="android.uid.system"
tools:ignore="GoogleAppIndexingWarning">
我注意到同样的事情,你找到解决方案了吗?@Alex,是的,但我忘了我是如何解决的。我记得,权限有问题。您必须授予权限:
最后一个,只能授予系统应用程序,正如我所记得的,您可以查看这个有用的示例:这是CopperHeadPosit的内部更新程序实现,对我来说是权限问题。如果您的设备上安装了priv应用程序,并添加了权限,然后重新安装该应用程序,它将不会获取新权限。你必须删除旧的应用程序并将apk复制到priv-app文件夹,然后从那里重新安装以获得新的许可。感谢你将我指向CopperheadOS版本@Alexander
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapp"
android:sharedUserId="android.uid.system"
tools:ignore="GoogleAppIndexingWarning">