我正在尝试将APK Expansion Downloader Library实现到我的应用程序中,但我很难通过LVL验证检查.
每次我运行应用程序时,我都会从LicenseValidator类中收到"签名验证失败"消息.应用程序在发布模式下签名,具有适当的密钥库.
我已经检查了我在应用程序内部使用的PUBLIC_KEY与开发者帐户相同的10倍以上,但它仍然无效.我还使用扩展文件(正确命名)将应用程序上传到Play商店,甚至在我的帐户中添加为开发人员控制台上的测试帐户.我也尝试将发布商帐户添加到我的设备上,但它仍然无效.
我不知道接下来该做什么,我需要这个工作,并且无法在互联网上找到任何关于如何解决这个问题的帮助.
谢谢
亚当
我正在Android中创建一个应用程序.我希望一旦我的应用程序安装在一台设备上,用户就无法复制".apk"并在其他设备上运行它.请帮帮我.提前致谢.:)
使用com.android.vending.licensing您可以检查您的应用是否获得许可.有回调,applicationError()告诉你是否出了什么问题.今天我遇到了错误ERROR_NOT_MARKET_MANAGED,我无法弄清楚应该怎么处理它!
这是我做的:
versionCode="10".versionCode="11".ERROR_NOT_MARKET_MANAGED.问题是; 我应该处理这个错误还是这是一个不现实的情况?
我在Play商店有一个付费应用程序(个人资料小工具,万一有人想知道;))我想允许一些用户(朋友或没有信用卡的人)免费下载.
当然我可以向他们发送APK,但是他们不会自动获得更新,并且每次更新应用程序时我都必须再次向他们发送所有APK文件.而且,通过使用此方法,任何有权访问APK文件的人都可以免费安装该应用程序.
我看到通过使用Android许可库,您可以让一些用户绕过许可证检查,但我希望应用程序在Play商店中显示为"已购买",我认为这不会.
我搜索堆栈溢出,但没有我找到了解决方案(如创建一个单独的APK,并检查从"真正的"应用程序它的存在)的处理的自动更新的一部分.
有人找到了一个很好的解决方案吗?
提前致谢!
我想在Android Marketplace中使用新的许可(LVL),但是我遇到了AESObfuscator的性能问题.具体来说,构造函数需要几秒钟才能在设备上运行(仿真器上的纯粹痛苦).由于此代码需要运行以检查缓存的许可证响应,因此在启动时检查许可证会严重阻碍.
运行LVL示例应用程序,这是我对AESObfuscator构造函数的野蛮风格分析:
public AESObfuscator(byte[] salt, String applicationId, String deviceId) {
Log.w("AESObfuscator", "constructor starting");
try {
Log.w("AESObfuscator", "1");
SecretKeyFactory factory = SecretKeyFactory.getInstance(KEYGEN_ALGORITHM);
Log.w("AESObfuscator", "2");
KeySpec keySpec =
new PBEKeySpec((applicationId + deviceId).toCharArray(), salt, 1024, 256);
Log.w("AESObfuscator", "3");
SecretKey tmp = factory.generateSecret(keySpec);
Log.w("AESObfuscator", "4");
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
Log.w("AESObfuscator", "5");
mEncryptor = Cipher.getInstance(CIPHER_ALGORITHM);
Log.w("AESObfuscator", "6");
mEncryptor.init(Cipher.ENCRYPT_MODE, secret, new IvParameterSpec(IV));
Log.w("AESObfuscator", "7");
mDecryptor = Cipher.getInstance(CIPHER_ALGORITHM);
Log.w("AESObfuscator", "8");
mDecryptor.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(IV));
} catch (GeneralSecurityException e) {
// This can't happen on …Run Code Online (Sandbox Code Playgroud) 我的应用程序现已准备好提交,但我最近了解了许可.
我在网上找到了一步一步的教程:http://twistbyte.com/tutorial/using-the-android-licensing-service-step-by-step
我已将Licensing库导入Eclipse并LicenseCheckActivity按照教程中的描述创建了该类.
我正在教程的最后一步,第7点.教程说我的课程应该扩展LicenseCheckActivity.但是,我想要检查许可的类已经扩展了Activity.
我怎样才能使用班上的checkLicense()方法LicenseCheckActivity?
这是我的代码:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
// Check the license
LicenseCheckActivity l = new LicenseCheckActivity();
checkLicense();
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
无法实例化LicenseCheckActivity类型
这是我的LicenseCheckActivity课
public abstract class LicenseCheckActivity extends Activity {
static boolean licensed = true;
static boolean didCheck = false;
static boolean checkingLicense = false;
static final String BASE64_PUBLIC_KEY = "MY BASE KEY";
LicenseCheckerCallback mLicenseCheckerCallback;
LicenseChecker mChecker;
Handler mHandler; …Run Code Online (Sandbox Code Playgroud) 如何获取(或查看)Android应用程序库64公钥?我有许可证文件,之前我已经发布了我的应用程序.
我需要许可证的钥匙.
我有一个付费的应用程序,已经在Android市场上出现了几个月,到目前为止,应用程序没有任何类型的复制保护或许可证验证方案.
我刚刚在我的应用程序中添加了LVL代码的修改版本.为了测试代码的许可响应处理,我在模拟器上登录了我的开发帐户并成功完成了所有测试响应,然后在我的真实手机上做了同样的事情(Droid运行2.2).
我认为在成功测试之后我应该很高兴,但我做了最后一次互联网搜索,看看一旦他们允许他们的LVL实现上线,人们是否有问题.令我恐惧的是,我偶然发现了开发人员的故事说他们已经成功测试了我所做的所有测试响应,但是当他们实际上用LVL上传他们的应用程序时,所有用户都收到回复说他们有未经许可的应用程序版本,当情况并非如此.
话虽如此,成功部署LVL的人能告诉我测试和验证LVL实现的最佳方式(从最终用户的角度来看),然后我必须将其实际发布到市场?目前,我在市场上发布了我的旧版非授权版应用程序,我所做的测试是在清单文件中使用相同的版本代码,我只是将更新的apk加载到模拟器上并进入我的手机(即新的apk没有上传到市场).对于偏执狂感到抱歉,但我宁愿完全删除LVL实现,而不是向有效用户提供未经许可的响应.
我有一个使用许可证检查API的Android应用程序.我已经使用适用于API级别8,9和10的Google API设置了模拟器AVD.我的应用程序在8级AVD上运行良好,但在9级和10级AVD上失败.这是一个典型的logcat序列:
02-14 17:43:55.815: INFO/LicenseChecker(448): Binding to licensing service.
02-14 17:43:55.935: WARN/ActivityManager(65): Unable to start service Intent { act=com.android.vending.licensing.ILicensingService }: not found
02-14 17:43:55.935: ERROR/LicenseChecker(448): Could not bind to service.
02-14 17:44:00.625: INFO/ActivityManager(65): Displayed com.zigzagworld.tehillim/.Tehillim: +2m1s448ms (total +5m43s546ms)
02-14 17:44:01.085: INFO/ARMAssembler(65): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) at [0x439de6f0:0x439de8a8] in 5603158 ns
02-14 17:44:18.025: INFO/InputReader(65): Device reconfigured: id=0x0, name=qwerty, display size is now 320x480
02-14 17:44:18.025: WARN/InputReader(65): Touch device did not report support for X or Y axis!
02-14 …Run Code Online (Sandbox Code Playgroud) 我刚刚导入了一个android项目,当我尝试运行它时,它会给我以下导入错误
import com.google.android.vending.licensing.AESObfuscator;
import com.google.android.vending.licensing.LicenseChecker;
import com.google.android.vending.licensing.LicenseCheckerCallback;
import com.google.android.vending.licensing.ServerManagedPolicy;
Run Code Online (Sandbox Code Playgroud)
任何帮助解决这个问题将不胜感激.
android ×10
android-lvl ×10
google-play ×3
java ×2
performance ×1
signature ×1
verification ×1