Increase verbosity around crash site for better ACRA reports.
Received the following crash report, where the user said it crashed while trying to install the priviledged extension: ``` java.lang.NullPointerException: Attempt to read from field 'android.content.pm.Signature[] android.content.pm.PackageInfo.signatures' on a null object reference at org.fdroid.fdroid.installer.ApkSignatureVerifier.getApkSignature(ApkSignatureVerifier.java:70) at org.fdroid.fdroid.installer.ApkSignatureVerifier.hasFDroidSignature(ApkSignatureVerifier.java:54) at org.fdroid.fdroid.installer.ExtensionInstaller.installPackageInternal(ExtensionInstaller.java:53) at org.fdroid.fdroid.installer.Installer.installPackage(Installer.java:265) at org.fdroid.fdroid.installer.InstallerService.onHandleIntent(InstallerService.java:77) at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:194) at android.os.HandlerThread.run(HandlerThread.java:61) ``` Not sure how to address it yet, so adding more specific excetpion for if it happens in the future.
This commit is contained in:
parent
1eb224fc5e
commit
6a0b16fc7d
@ -66,7 +66,15 @@ class ApkSignatureVerifier {
|
|||||||
|
|
||||||
private byte[] getApkSignature(File apkFile) {
|
private byte[] getApkSignature(File apkFile) {
|
||||||
final String pkgPath = apkFile.getAbsolutePath();
|
final String pkgPath = apkFile.getAbsolutePath();
|
||||||
|
if (!apkFile.exists()) {
|
||||||
|
throw new IllegalArgumentException("Could not find APK at \"" + pkgPath + "\" when checking for signature.");
|
||||||
|
}
|
||||||
|
|
||||||
PackageInfo pkgInfo = pm.getPackageArchiveInfo(pkgPath, PackageManager.GET_SIGNATURES);
|
PackageInfo pkgInfo = pm.getPackageArchiveInfo(pkgPath, PackageManager.GET_SIGNATURES);
|
||||||
|
if (pkgInfo == null) {
|
||||||
|
throw new NullPointerException("Could not find PackageInfo for package at \"" + pkgPath + "\".");
|
||||||
|
}
|
||||||
|
|
||||||
return signatureToBytes(pkgInfo.signatures);
|
return signatureToBytes(pkgInfo.signatures);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user