小编ste*_*mit的帖子

Android上的Mockito + Dexmaker

我想在我的Android项目中使用Mockito.我找到了非常好的教程来处理它:http://www.paulbutcher.com/2012/05/mockito-on-android-step-by-step/

基本上它使用新版本的Mockito + Dexmaker,一切都按预期工作.
但是,当我尝试模拟一些Android特定对象时,即:

Context context = mock(Context.class);
Run Code Online (Sandbox Code Playgroud)

我收到这个例外:

java.lang.IllegalArgumentException: 
    dexcache == null (and no default could be found; 
    consider setting the 'dexmaker.dexcache' system property)
at com.google.dexmaker.DexMaker.generateAndLoad(DexMaker.java:359)
at com.google.dexmaker.stock.ProxyBuilder.buildProxyClass(ProxyBuilder.java:252)
at com.google.dexmaker.mockito.DexmakerMockMaker.createMock(DexmakerMockMaker.java:54)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:26)
Run Code Online (Sandbox Code Playgroud)

知道怎么解决吗?

android mockito dexmaker

37
推荐指数
3
解决办法
2万
查看次数

Android adb shell am startservice:找不到错误

我正在尝试从adb shell启动服务.已经有类似的问题:如何从adb shell启动和停止android服务? 但是,当我开始服务时:

adb shell am startservice com.mypackage/com.mypackage.service.MyService
Run Code Online (Sandbox Code Playgroud)

我收到此消息:

Starting service: Intent { act=android.intent.action.VIEW dat=com.mypackage/com.mypackage.service.MyService }
Error: Not found; no service started.
Run Code Online (Sandbox Code Playgroud)

我在AndroidManifest.xml中声明了服务:

<application>
  ...
  <service
    android:name="com.mypackage.service.MyService"
    android:label="@string/local_service_label"
    android:icon="@drawable/ic_launcher">
  </service>
</application>
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?谢谢!

android adb

11
推荐指数
1
解决办法
3万
查看次数

Swift闭包[弱自我]和异步任务

想象一种情况,当你想从服务器异步加载一些文本并在结果中显示结果时.ViewController's UITextField

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

    //... some long running async operation

    if let textResponse = responseFromServer {
        dispatch_async(dispatch_get_main_queue(), { [weak self] () in
            self?.textField.text = textResponse
        })
    }
})
Run Code Online (Sandbox Code Playgroud)

A.)我是否需要在用于异步调用的闭包中使用[weak self]?

我认为我需要,但是我不确定在StackOverflow上读了一些Q/A并经历了一些不使用[弱自我]进行异步任务+闭包的开源应用程序.

即:

您真正想要使用[无主自我]或[弱自我]的唯一时间是您创建一个强大的参考周期.(我们总是在Swift中使用[unowned self]内部封闭)

在我的案例中没有强大的参考周期.

要么:

但需要明确的是,在这种情况下使用强力参考仍然是最好的.(Swift ARC和块)

B.)让我们说强有力的参考是好的.当用户在异步加载过程中导航到不同的页面时,ViewController会发生什么?在异步任务完成之前,它是否会将不可见的ViewController保留在应用程序内存中?

closures asynchronous ios swift

11
推荐指数
1
解决办法
3965
查看次数

以编程方式向ShapeDrawable添加阴影

我试图以编程方式制作具有不同渐变的按钮.我使用ShapeDrawable,它就像一个魅力.

RoundRectShape rs = new RoundRectShape(new float[] { 12f, 12f, 12f, 12f, 12f, 12f, 12f, 12f }, null, null);
ShapeDrawable sd = new ShapeDrawable(rs);
ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() {

    @Override
    public Shader resize(int width, int height) {
        LinearGradient lg = new LinearGradient(0, 0, 0, height,
                new int[] { 
                    Color.parseColor("#feccb1"), 
                    Color.parseColor("#f17432"), 
                    Color.parseColor("#e86320"),
                    Color.parseColor("#f96e22") },
                new float[] {
                    0, 0.50f, 0.50f, 1 },
                Shader.TileMode.REPEAT);
             return lg;
        }
    };
sd.setShaderFactory(sf);
myBtn.setBackgroundDrawable(sd);
Run Code Online (Sandbox Code Playgroud)

但是我想在按钮上添加阴影,而不是以编程方式添加按钮文本.任何帮助,将不胜感激.

java android shadow shapedrawable

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

iOS App ID - 禁用应用程序内购买(无法启用)

我创建了我的应用程序的测试版,并将其上传到iTunes Connect for TestFlight测试,没有任何问题.

后来,我决定实施In-App购买.我访问了带有标识符的Apple页面,发现我的应用程序已经有明确的App ID.我想编辑我的显式应用ID并启用应用内购买.

禁用应用内购买

当我点击"编辑"按钮时,我发现应用程序内购买复选框显示为灰色且无法编辑.

无法启用IAP

默认情况下,应根据Apple文档启用应用程序内购买:

显式应用程序ID是应用程序ID,其分发标识符部分是不带通配符("*")字符的字符串.此外,它们会自动注册为应用内购买和游戏中心

知道如何启用应用程序内购买吗?(我想使用相同的包ID).

iphone app-id app-store in-app-purchase ios

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