fix crasher caused by wrong init

Also, app.installedApk.sig is set in App.initInstalledApk()
from 3a5ecc5e8ec6c820dbfdb788dc06f7dbb0699c18

refs #1305
refs #855

java.lang.NullPointerException
at org.fdroid.fdroid.data.App.getInstance(App.java:390)
at org.fdroid.fdroid.localrepo.CacheSwapAppsService.onHandleIntent(CacheSwapAppsService.java:77)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.os.HandlerThread.run(HandlerThread.java:60)
This commit is contained in:
Hans-Christoph Steiner 2018-07-12 10:22:51 +02:00
parent 11c28bff2c
commit 6bcc1f2e68

View File

@ -381,6 +381,7 @@ public class App extends ValueObject implements Comparable<App>, Parcelable {
App app = new App();
PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
SanitizedFile apkFile = SanitizedFile.knownSanitized(packageInfo.applicationInfo.publicSourceDir);
app.installedApk = new Apk();
if (apkFile.canRead()) {
String hashType = "SHA-256";
String hash = Utils.getBinaryHash(apkFile, hashType);
@ -389,11 +390,9 @@ public class App extends ValueObject implements Comparable<App>, Parcelable {
}
app.installedApk.hashType = hashType;
app.installedApk.hash = hash;
app.installedApk.sig = Utils.getPackageSig(packageInfo);
}
app.setFromPackageInfo(pm, packageInfo);
app.installedApk = new Apk();
app.initInstalledApk(context, app.installedApk, packageInfo, apkFile);
return app;
}