小编Chr*_*sco的帖子

Android Studio标签间距

如何在Android Studio中更改间距以使用制表符而不是空格?我尝试过Preference - > Editor但是我没有看到那里的选项.我正在使用Android Studio for Mac

android-studio

64
推荐指数
2
解决办法
4万
查看次数

在Android Studio中的Release Build上启用LogCat

默认情况下,当我更改Build Variantsrelease我没有在logcat上获取任何日志,但我确实需要阅读我的应用程序的发布日志,我该如何启用它?

android logcat

47
推荐指数
4
解决办法
3万
查看次数

KeyStore和密钥别名

我正在导出一个应用程序,我对keystore和keyalias非常好奇.我不确定它们的用途是什么,或者我应该创建多少(每个应用程序可能有一个?).我将不胜感激任何有关这些键的信息.谢谢

android keystore

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

我如何告诉我的老板与Xamarin合作不会让它变得更快

我是我工作中唯一的移动开发人员.在我被录用之前,我现在的老板正在考虑使用Xamarin,因为他们的营销说的是共享代码原生代码.自从我构建大型信息系统以来,我认为自己是一名高级Android开发人员.现在我正在处理我可以在一周内完成的简单应用程序,但是Xamarin因为太多错误而让我很头疼,并且可重复使用的代码大约10%可以轻松复制/粘贴iOS,尽管你事实上可以共享10%的代码,有时您仍然需要使用编译指令#if / #endif.

我的意思是,没有任何真正的优势,对我来说,因为我已经知道这两个JavaObjective-C语言.我已经在iOS和Android SDK上拥有丰富的知识SQLite和数据存储知识,Core Data因此学习Xamarin会使速度变慢.

我已经尝试过谈论他们不会选择Xamarin因为它只能分享一些代码,但他们似乎也不理解.

我需要一些好的论据来说服他们不要买它,所以我可以以更高效,更快的方式完成我的工作.先感谢您.

android xamarin.ios ios xamarin

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

匕首2 - 为什么这是一个依赖循环?

我正在尝试将应用程序Context注入其他两个对象,一个AuthManager和一个ApiClient.

它们都取决于所述的背景,并且ApiClient取决于AuthManager.为什么这是一个依赖循环,如果Context没有引用其他2?这可以解决吗?

编辑:这是一些代码

@Module
public class AppModule {

    private final Application application;

    public AppModule(Application application) {
        this.application = application;
    }

    @Provides @Singleton
    Context provideApplicationContext() {
         return this.application;
    }
}


@Module
public class NetworkModule {

    @Provides @Singleton
    public AuthManager providesAuthManager(AuthManager manager) {
        return manager;
    }

    @Provides @Singleton
    public ApiClient providesApiClient(ApiClientFactory factory) {
        return factory.create();
    }
}

@Singleton
@Component(modules = {AppModule.class, NetworkModule.class})
public interface ApplicationComponent {
    void inject(BaseActivity activity); …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection dagger dagger-2

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

如何为.travis.yml上的所有作业正确定义多个env变量

文件说:

当您在env数组(矩阵变量)中为每行定义多个变量时,每个项目都会触发一个构建.

rvm:
  - 1.9.3
  - rbx
env:
  - FOO=foo BAR=bar
  - FOO=bar BAR=foo
Run Code Online (Sandbox Code Playgroud)

但是,如果我每行只定义1个怎么办?我正在做以下事情:

env: 
  - FOO=1
  - BAR=2
  - BAZ=3
Run Code Online (Sandbox Code Playgroud)

但它触发3次构建?我期望它用这3个env变量触发1个构建.我必须像这样定义它们吗?

env:
  - FOO=1 BAR=2 BAZ=3 QUX=4 ........ =10
Run Code Online (Sandbox Code Playgroud)

或者我在这里遗漏了什么?

travis-ci

21
推荐指数
1
解决办法
5666
查看次数

使用FragmentActivity的getSupportActionBar

我在一个项目上使用片段活动,但似乎v4支持FragmentActivity没有getSupportActionBar()方法,我需要使用支持一个才能使用android.support.v7.app.ActionBar

android android-actionbar android-fragmentactivity android-support-library

18
推荐指数
1
解决办法
2万
查看次数

使用NormalModuleReplacementPlugin从实际文件中获取

我有一个Storybook设置,我需要我的React组件的子组件停止进行API调用。设置非常复杂,并且与问题无关,所以我只想说我需要组件来停止进行API调用。

我的最终目标是使子组件永远保持在“加载状态”,因此 嘲笑服务器响应不是这里的解决方案

我想出的方法是将我的Thunk动作创作者替换为残缺的创作者。与我们在Jest单元测试中所做的相似

// note that I'm using redux ducks: https://github.com/erikras/ducks-modular-redux

jest.mock('./ducks/students');
Run Code Online (Sandbox Code Playgroud)

当然,由于Storybook不在Jest上运行,因此上述方法不起作用。所以我目前的做法是使用NormalModuleReplacementPlugin来代替真正的模块ducks/students.js有一个存根ducks/stubs/students.js其中所包含的功能,但有一个空的身体:

// ./ducks/students.js
export const loadResources() = fetch('/resources');

export default (state, actions => {
  // reducer's body
}


// ./ducks/stubs/students.js
export const loadResources() = Promise.resolve();  // STUBBED

export default (state, actions => {
  // reducer's body
}
Run Code Online (Sandbox Code Playgroud)

问题在于,我只需要对笨拙的动作创建者进行打桩,文件中的其他所有内容(其他动作和reducer)都必须相同。

到目前为止,这是我考虑过的解决方法:

  • 将其余的实际文件复制/粘贴到存根的文件中。这不会扩展。
  • 尝试使用require.requireActual()。原来这是一个Jest自定义函数,所以我不能在Storybook上使用它。

理想情况下,我可以找到一种方法将所有内容从实际模块导入到存根模块,然后导出存根函数和我需要的其余实际函数。

有什么想法可以在使用时从存根模块中访问实际模块NormalModuleReplacementPlugin吗?

更新1:2019-07-08

Tarun建议仅模拟fetch函数并new Promise()针对“无限加载”的特殊情况返回工作。

但是,从总体上看,我仍然只想保留所有API调用,以便我可以通过修改redux状态来设置故事。

“但是为什么不能仅仅模拟JSON响应呢?” 我听到你问。JSON响应不一定与应用程序域模型进行一对一映射。我们有负责转换的映射器功能。

如果程序员可以只具有域模型知识就能工作和设置测试用例,而又不需要知道服务器响应JSON结构,那将更好。不用说,应用程序redux存储结构是域模型。

因此,当使用时,我仍然需要一个有关如何从实际文件中进行要求的答案NormalModuleReplacementPlugin …

javascript webpack

17
推荐指数
1
解决办法
319
查看次数

斯威夫特,无法施放类型的价值

我创建了一个子类UICollectionViewController并调用它LibraryCollectionViewController,并标记了项目和测试的两个复选框.它的故事板id也是LibraryCollectionViewController在界面构建器上设置其对应的类.

作为SwiftiOS测试的新手,我去尝试在我的测试用例中实例化所述视图控制器,如下所示:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let libraryCollectionVC = storyboard.instantiateViewControllerWithIdentifier("LibraryCollectionViewController") as! LibraryCollectionViewController
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Could not cast value of type 'MyApp.LibraryCollectionViewController' (0x1010b01f0) to 'MyAppTests.LibraryCollectionViewController' (0x10bd7f580).
Run Code Online (Sandbox Code Playgroud)

所以很明显它不是强制转换,但由于我还是Swift的新手,我发现自己无法确定错误本身是否由以下原因引起:

  1. 我在创建子类时做错了,我引用了另一个(Ergo the MyApp.[vc] vs MyAppTests.[vc])
  2. 使用铸造as!不正确
  3. 任何其他原因

如果提前感谢,任何帮助都会很感激.

更新1:当我创建视图控制器时,最后一步显示目标标题下的2个复选框,我启用了它们,这可能是原因吗?

ios swift

16
推荐指数
2
解决办法
1万
查看次数

使用Espresso在Android上测试进度条

工作流程应如下:

  1. 活动开始
  2. 进度条可见
  3. 网络请求触发(空闲资源已经注册,因此espresso知道如何等待它).
  4. 进度条被隐藏
  5. 显示来自网络的文本.

到目前为止,我已经为第1,3,5步编写了断言,它完美地运行:

onView(withText("foo 1"))
    .check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道如何让espresso知道在请求发出之前和发出请求之后验证进度条的可见性.

考虑onCreate()方法如下:

super.onCreate(...);
setContentView(...);

showProgressBar(true);
apiClient.getStuff(new Callback() {
    public void onSuccess() {
        showProgressBar(false);
    }
});
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但它不起作用:

// Activity is launched at this point.
activityRule.launchActivity(new Intent());

// Up to this point, the request has been fired and response was 
// returned, so the progress bar is now GONE.
onView(withId(R.id.progress_bar))
   .check(matches(isDisplayed()));

onView(withId(R.id.progress_bar))
    .check(matches(not(isDisplayed())));
Run Code Online (Sandbox Code Playgroud)

发生这种情况的原因是,由于客户端被注册为空闲资源,espresso将在运行第一个之前等待它再次空闲,onView(...progressbar...)...因此我需要一种方法让espresso知道进入空闲状态之前运行.

编辑:这也不起作用: …

android android-espresso

16
推荐指数
2
解决办法
7329
查看次数