小编dor*_*ors的帖子

无法使Android应用内结算示例应用运行

我已尝试按照http://developer.android.com/google/play/billing/billing_integrate.html#billing-download中的步骤启用应用内结算示例应用.

我将指明我所做的一切+最后添加的日志.我希望有人能够告诉我我做错了什么.

以下是我所做的一切(我知道它很长......但我想确保我没有忘记任何事情):

我将Dungeons项目导入我的工作区,将我的Google公钥导入Security.java的base64EncodedPublicKey变量.我从我添加到Google Developer帐户的新应用中获得了该公钥.

我根据请求更改了应用程序包的名称,因此它没有com.example前缀

我构建应用程序并通过"Android工具" - >"导出已签名的应用程序包..."进行登录

我将该APK上传到我在开发人员帐户中创建的新应用程序(我从中获取了公钥)

我将app产品添加到新应用程序中,其ID与Dungeons项目(sword_001,postion_001)中的ID相同并激活它们.

我在"设置" - >"具有测试访问权限的Gmail帐户"中向我的开发者帐户添加了一个测试帐户.该帐户不是我的开发者帐户,而是我创建的新帐户.

我在设备上安装了已签名的应用程序,我在工厂重置并使用我添加到开发人员帐户的测试帐户登录.

我的设备

我在没有SIM卡的Android 2.3.4设备上安装了应用程序(这是我的测试设备).谷歌播放版:3.10.9

结果

当我尝试购买其中一种产品时,我收到"项目不可用"错误(实际上我得到了两次).我尝试将DEBUG设置为true,现在我收到"从服务器检索信息的错误.[RPC:S-5:AEC-0]"(两次......)

日志:

12-06 07:58:42.255: D/Finsky(1955): [7] MarketBillingService.getPreferredAccount: com.sakal.billingtest.merchant: Account from first account.
12-06 07:58:42.275: D/Finsky(1955): [7] MarketBillingService.getPreferredAccount: com.sakal.billingtest.merchant: Account from first account.
12-06 07:58:42.325: D/Finsky(1955): [27] MarketBillingService.getPreferredAccount: com.sakal.billingtest.merchant: Account from first account.
12-06 07:58:42.335: D/Finsky(1955): [27] MarketBillingService.getPreferredAccount: com.sakal.billingtest.merchant: Account from first account.
12-06 07:58:42.991: E/Volley(1955): [15] BasicNetwork.performRequest: Unexpected response code 500 for https://android.clients.google.com/fdfe/details?doc=subs:com.sakal.billingtest.merchant:potion_001
12-06 07:58:44.785: D/Finsky(1955): …
Run Code Online (Sandbox Code Playgroud)

android in-app-purchase in-app-billing

7
推荐指数
1
解决办法
3729
查看次数

使用Google Analytics v4跟踪网络到设备的安装

正如在/sf/answers/882847591/中提出并回答的那样,在GoogleAnalytics v2中无法将引荐来者广播和监控网络设备安装.

Google Analytics v4文档中,没有提到这样的内容,它甚至说:

Google Play广告系列归因 - 查看哪些广告系列,网站和其他应用将用户引荐至Google Play商店以下载您的应用.

但我似乎还无法通过网络进行设备跟踪.

这仍然不受支持吗?有什么特别需要为这个工作圆顶吗?

android google-analytics

7
推荐指数
0
解决办法
211
查看次数

将WebView缓存图像加载到ImageView中

我有一个WebView,它使用以下设置将其图像缓存到目录中:

mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
mWebView.getSettings().setAppCacheMaxSize( 8 * 1024 * 1024 ); // 8MB
mWebView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我希望能够将使用此WebView缓存的图像加载到ImageView中.

我正在查看缓存目录指向的目录使用adb shell(/data/data/com.example.webviewtest/cache),我找到了以下文件夹:

  • ApplicationCache.db
  • com.android.opengl.shaders_cache
  • webviewCacheChromium

有没有办法在这些目录中找到下载的图像?

如果是,我可以将它们加载到Bitmap(在ImageView中使用)吗?

android caching android-webview webviewclient

6
推荐指数
1
解决办法
3390
查看次数

使用WindowManager.updateViewLayout()获取视图以设置其新位置的动画

我使用WindowManager.updateViewLayout()向WindowManager添加一个视图.

然后我将onTouch监听器附加到它上面,并使其"跟随"用户的手指(拖动).我这样做是通过更改我在updateViewLayout中传递的WindowManager.LayoutParams的x和y值来实现的.

当用户抬起手指时,我希望视图根据其靠近的位置设置为屏幕左/右边缘的动画.我得到的效果是视图立即粘到边缘,没有任何动画.

如果视图的宽度/高度变化很难(并且随后是WindowManager.LayoutParams的宽度/高度),则视图会动画到其新位置.

有没有办法让它在仅改变x/y值后进行动画处理(没有宽度/高度变化)?

android window-managers

6
推荐指数
1
解决办法
600
查看次数

如何使用Dagger2将Presenter注入视图(MVP模式)

我想使用MVP模式构建一个Android应用程序.

我有一个片段(视图)和一个演示者类.

我想要的是基本上将演示者注入片段,并将片段设置为演示者的视图(通过视图将实现的接口)

如何使用依赖注入(使用Dagger2)轻松​​正确地连接2?

编辑:

另外,我希望演示者成为单身人士,因此它能够在方向变化中保持数据和状态

mvp android dagger-2

6
推荐指数
1
解决办法
2205
查看次数

RxAndroid,事件总线和Activity生命周期

我发现一些文章谈论RxJava/RxAndroid如何取代事件总线(如otto)

第一篇文章的引用:

来自Square的Otto在前几天被正式弃用.在Android世界中,我们现在可以为"EventBusses死了很长的RxJava"而欢呼.

但我有一件事是:

事件总线的一个好处是它们对Activity生命周期有很大的帮助,因为你不需要手动管理注册/取消注册回调(从而避免内存泄漏)

示例流程:

  • 活动订阅获取歌曲的事件(比如SongsAvailableEvent)
  • 我们要求歌曲(我们提出网络请求)
  • 我们在请求中更改设备的方向
  • Activity死了,构建了一个新的,也订阅了SongsAvailableEvent
  • 新活动获取事件并更新UI,旧活动(现在已经死了)没有得到事件(耶!)

上面的文章看起来这个流程是由RxAndroid/RxJava"解决"的,但是使用Rx时,你仍然需要在更改设备的方向时手动订阅/取消订阅Observable.此外,如果我想"重用"Observable中的请求,我需要以某种方式持久化它,以便我将在新Activity中订阅相同的Observable(我不太清楚如何做到这一点,但它是不是重点:)).

我的问题是:这个问题是否可以用纯RxAndroid/RxJava轻松解决,或者我是否仍然需要使用事件总线/扩展Rx使用RxLifecycle之类的东西(由于我不在表示层管理我的Observables使事情变得复杂) ?

android activity-lifecycle otto rx-java rx-android

6
推荐指数
1
解决办法
828
查看次数

如何通过界面构建​​器使用精确的十六进制设置视图的背景颜色?

在IB中,当我转到属性检查器并单击"背景"下拉 - >其他时,我得到一个带有几个标签(轮子,滑块,apllets)的颜色托盘,但是没有地方可以设置精确的,例如#ff5911例如.

有没有办法在不使用代码的情况下做到这一点?

interface-builder ios

5
推荐指数
2
解决办法
3253
查看次数

ADB:在发布版本中作为根设备上的应用程序运行

我想从adb将文件写入应用程序的data/data/[package name]文件夹,并让该应用程序读取这些文件.

我知道在调试版本中我可以使用该run-as [package name]命令作为该应用程序运行并编写如上所述的文件.

当我在发布版本上运行上面的命令时,我得到了run-as: Package '[package name]' is not debuggable.

有没有办法在没有设置debuggable = true的情况下在root设备上克服这个问题?

android root adb

5
推荐指数
0
解决办法
135
查看次数

如果未设置 android:sharedUserId,默认设置的 android:sharedUserId 是多少

文档

将与其他应用程序共享的 Linux 用户 ID 的名称。默认情况下, Android 为每个应用程序分配自己唯一的用户 ID。

假设我有一个没有在 AndroidManifest.xml 文件中指定 android:sharedUserId 的应用程序。

Android 生成的默认 sharedUserId(请参阅上面的文档)是在构建中设置的(对于所有设备上的此应用程序都相同),还是在安装了该应用程序的每个设备上生成了不同的 sharedUserId?

android android-manifest

5
推荐指数
1
解决办法
797
查看次数

QUERY_ALL_PACKAGES 是如何强制执行的?

Android 11(目标 30)引入了包可见性限制

他们添加了允许绕过这些限制的 QUERY_ALL_PACKAGES,并且只允许特定的应用程序使用它。

该权限的保护级别是NORMAL,所以我想知道如何强制限制该权限。

在文档中,他们说:

在即将发布的政策更新中,请查找 Google Play 来为需要 QUERY_ALL_PACKAGES 权限的应用提供指南。

有谁知道哪里可以找到此政策更新?

android android-permissions android-11

5
推荐指数
1
解决办法
6923
查看次数