我想将我的图像存储在一个sqlite数据库中,在blob-s中,并可能加密它们.是否可以将Android-Universal-Image-Loader与sqlite数据库中的图像一起使用?
我的应用程序已经在Play商店中存在了一段时间,并且它有效.昨天我发布了一个更新,发现了一个错误,我今天要修复它.在将我的alpha apk上传到具有新版本和版本代码的发布商页面后(因此我可以测试购买),在应用内购买不适用于此新版本.我没有更改任何与应用结算相关的代码.我正在使用iab库的v3.
我收到此错误消息:
01-16 13:15:34.365:E/Parcel(707):解组时找不到类:com.google.android.finsky.billing.lightpurchase.PurchaseParams 01-16 13:15:34.365:E/Parcel(707) :java.lang.ClassNotFoundException:com.google.android.finsky.billing.lightpurchase.PurchaseParams 01-16 13:15:34.365:E/Parcel(707):at java.lang.Class.classForName(Native Method)01- 16 13:15:34.365:E/Parcel(707):at java.lang.Class.forName(Class.java:204)01-16 13:15:34.365:E/Parcel(707):at java.lang. Class.forName(Class.java:169)01-16 13:15:34.365:E/Parcel(707):at android.os.Parcel.readParcelableCreator(Parcel.java:2091)01-16 13:15:34.365: E/Parcel(707):在android.os.Parcel.readParcelable(Parcel.java:2055)01-16 13:15:34.365:E/Parcel(707):在android.os.Parcel.readValue(Parcel.java) :1971)01-16 13:15:34.365:E/Parcel(707):在android.os.Parcel.readMapInternal(Parcel.java:2255)01-16 13:15:34.365:E/Parcel(707):在android.os.Bundle.unparcel(Bundle.java:223)01-16 13:15:34.365:E/Parcel(707):在android.os.Bundle .getString(Bundle.java:1082)01-16 13:15:34.365:E/Parcel(707):在android.content.Intent.getStringExtra(Intent.java:4945)01-16 13:15:34.365:E/parcel(707):at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3745)01-16 13:15:34.365:E/Parcel(707):at com.android.server.am. ActivityStack.startActivityMayWait(ActivityStack.java:4961)01-16 13:15:34.365:E/Parcel(707):at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3433)01-16 13: 15:34.365:E/Parcel(707):at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:254)01-16 13:15:34.365:E/Parcel(707):at com.android .server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3325)01-16 13:15:34.365:E/Parcel(707):at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:258)01-16 13 :15:34.365:E/Parcel(707):at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.jav)a:2122)01-16 13:15:34.365:E/Parcel(707):在android.os.Binder.execTransact(Binder.java:388)01-16 13:15:34.365:E/Parcel(707) :at dalvik.system.NativeStart.run(Native Method)01-16 13:15:34.365:E/Parcel(707):引起:java.lang.NoClassDefFoundError:com/google/android/finsky/billing/lightpurchase/PurchaseParams 01-16 13:15:34.365:E/Parcel(707):... 19更多01-16 13:15:34.365:E/Parcel(707):引起:java.lang.ClassNotFoundException:没有在路径上找到"com.google.android.finsky.billing.lightpurchase.PurchaseParams"课程:.01-16 13:15:34.365:E/Parcel(707):at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)01-16 13:15:34.365:E/Parcel(707):at java. lang.ClassLoader.loadClass(ClassLoader.java:501)01-16 13:15:34.365:E/Parcel(707):at java.lang.ClassLoader.loadClass(ClassLoader.java:461)01-16 13:15: 34.365:E/Parcel(707):......还有19个
我在调用购买意图时得到它.ui上的错误消息是:
此版本的应用程序未配置为通过Google Play进行结算.请访问帮助中心以获取更多信息.
我在不同的设备上尝试过,结果相同.旧版本的应用程序仍然有效.昨天它运作得很好.
我应该等待谷歌播放服务获取我有新的测试版更新的信息吗?我猜这个更新还没有到达我的设备.
编辑:我已经将3个版本代码作为测试版上传到发布商网站试图修复此问题,现在前一个版本正常工作.所以我想我真的只需要等待.:(
我有一个关于https://github.com/nostra13/Android-Universal-Image-Loader库的问题.
我正在使用imageLoader.displayImage(...)将数据库中的图像加载到listview中的imageviews.
文档说这个:
ImageSize targetSize = new ImageSize(120, 80); // result Bitmap will be fit to this size
imageLoader.loadImage(imageUri, targetSize, displayOptions, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Do whatever you want with Bitmap
}
});
Run Code Online (Sandbox Code Playgroud)
是否可以为imageLoader.displayImage方法声明目标大小?
如何检查我的应用程序的签名是否与我用来签名的证书的签名相匹配?
这就是我应该如何获得证书指纹:
public String getCertificateFingerprint() throws NameNotFoundException, CertificateException, NoSuchAlgorithmException {
PackageManager pm = context.getPackageManager();
String packageName =context.getPackageName();
int flags = PackageManager.GET_SIGNATURES;
PackageInfo packageInfo = null;
packageInfo = pm.getPackageInfo(packageName, flags);
Signature[] signatures = packageInfo.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = null;
cf = CertificateFactory.getInstance("X509");
X509Certificate c = null;
c = (X509Certificate) cf.generateCertificate(input);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] publicKey = md.digest(c.getPublicKey().getEncoded());
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < publicKey.length; i++) { …Run Code Online (Sandbox Code Playgroud)