小编Sta*_*nd0的帖子

如何在UML类图上显示依赖注入?

见subj.

如果你能附上一张图片会很好(我的google-fu不太适合自己找一张).谢谢!

uml dependency-injection class-diagram

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

设置android studio警告级别

我正在尝试使用android studio,到目前为止一直很好.但是,它有黄色指数,警告,灯泡,等等!

这是一个问题.不,我的代码实际上并没有真正的警告,它主要是样式挑剔的项目,如"简化"FLAG_AUTOSAVE == false to!FLAG_AUTOSAVE

哪个,不,我不想做,那不是我的风格,我喜欢我的代码一目了然.

或者实际上是错误的建议,例如更改正确覆盖的方法的签名.(它仍然是版本1.x ......)

无论我的风格是否完美,我都需要这些才能消失所以我可以看到真正的警告.

settings android android-studio

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

Espresso AmbiguousViewMatcherException when trying to click a navigation button

Test I'm attempting to do: make a purchase, note the title, then return to the home activity, and press "home_image" which is an image button.

My issue is I can't navigate home_image. I press it and I get a bogus duplicate ID. I believe the duplicate ID is referring to the non visible fragments which have the same ID. Why it's not an issue at the start of the test is weird. Sorry had to truncate the logs, due to …

android android-espresso

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

如果我们在没有实现其接口的情况下找到类调用,则为Java/Android Report提供自定义Lint

我正在写一个定制的lint探测器,以获得乐趣.我将关于在Android中创建自定义lint规则的Big Nerd Ranches课程(对于Java应该是相同的)

我可以检测到我想要的事件.调用类构造函数.但是由于我们通过抽象语法树遍历这一事实, 我无法检测到回调的实现.我不知道如何告诉Java检查文件,只报告它是否找不到.在这种情况下,接口实现.因为我一次只看到一片叶子.

如何查找两次出现,存储每次发生的位置,然后执行我的逻辑并相应地报告?

package com.bignerdranch.linette.detectors;

import com.android.annotations.NonNull;
import com.android.tools.lint.detector.api.Category;
import com.android.tools.lint.detector.api.Context;
import com.android.tools.lint.detector.api.Detector;
import com.android.tools.lint.detector.api.Implementation;
import com.android.tools.lint.detector.api.Issue;
import com.android.tools.lint.detector.api.JavaContext;
import com.android.tools.lint.detector.api.Location;
import com.android.tools.lint.detector.api.Scope;
import com.android.tools.lint.detector.api.Severity;
import com.android.tools.lint.detector.api.TextFormat;

import java.io.File;
import java.util.EnumSet;
import java.util.List;

import lombok.ast.AstVisitor;
import lombok.ast.Node;

/**
 * Lint check for the usage of to-do statements
 */
public class CallBackDetector extends Detector implements Detector.JavaScanner {

    private static final String FRAGMENT_MATCHER_STRING = "NoInternetDialogFragment()";
    private static final String INTERFACE_MATCHER_STRING =
            "NoInternetDialogFragment.NoInternetCallbackInterface";

    private …
Run Code Online (Sandbox Code Playgroud)

java android lint abstract-syntax-tree

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

使用Time Stamp运行昨日版本的Android Gradle构建文件

下面我有Gradle的构建文件.问题.它运行昨天的APK而不是今天的.根本原因.我动态地将日期放在apks名称中 - 用于调试版本.

当我运行应用程序时,它会看到旧的APK并看到它与Gradle期望的相符,因为Gradle没有刷新并注意到日期更改.

我需要强制gradle刷新每次运行.

buildTypes {
   debug {
        debuggable true
        minifyEnabled false
        proguardFiles 'proguard-rules.pro'
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def formattedDate = new Date().format('yyyyMMdd')
                def newName = output.outputFile.name
                newName = newName.replace("app-", "myappname-") //"MyAppName" -> I set my app variables in the root project
                newName = newName.replace("-release", "-" + versionName + "-" + formattedDate + "-r")
                newName = newName.replace("-debug", "-" + versionName + "-" + formattedDate + "-d")
                output.outputFile = new File(output.outputFile.parent, newName)
            }
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

android android-studio build.gradle android-gradle-plugin

9
推荐指数
1
解决办法
1294
查看次数

Android Mocking Dagger2为Espresso测试注入依赖项

我有一个严重依赖注入(dagger2)应用程序.我想在没有测试导航整个应用程序的情况下运行espresso测试,并登录到应用程序.

我想从我的teleActivity开始,并模拟登录管理器.但是在任何@test函数中,我们已经调用了空指针,因为我们调用了onCreate.如果我在启动活动之前覆盖它(如下所示),则活动为空.

根据我的理解,切换下划线依赖关系的能力是我们使用Dagger2的一个重要原因,否则它只是一个非常过度设计的单例.如何覆盖,模拟或切换注射到测试匕首模块 - 所以我可以创建这个简单的浓咖啡测试.

注意我还在MVP设计模式中写了所有这些,如果这有所不同.

TeleActivity

@Inject
TelePresenter mTelePresenter;
@Inject
public LoginStateManager mLoginStateManager;

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ButterKnife.bind(this);
    DaggerInjectorTele.get().inject(this);
    mTelePresenter.setTeleDependencies(this);
    Intent intent = getIntent();

    String searchId = null;

    if (intent != null) {
        searchId = intent.getStringExtra(Constants.SEARCH_ID);
       }

    mTelePresenter.onCreateEvent(searchId,
            Helper.makeAuthorizationHeader(
            // CRASH Null pointer
            mLoginStateManager.getBaseLoginResponse().getAccessToken()));

}
Run Code Online (Sandbox Code Playgroud)

浓咖啡

@LargeTest
@RunWith(AndroidJUnit4.class)
public class TeleTest {
    @Rule
    public ActivityTestRule<TeleActivity> mActivityTestRule = new ActivityTestRule(
            TeleActivity.class) {
        @Override
        protected void beforeActivityLaunched() {
            super.beforeActivityLaunched();
            TeleActivity teleActivity = (TeleActivity)getActivity();
             //teleActivity …
Run Code Online (Sandbox Code Playgroud)

android mockito android-espresso dagger-2

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

关闭Android Studios糟糕的风格建议?

我需要删除所有Android工作室"这可以更改为"警告标志.我知道我可以使用滑块从检查到语法减少所有警告标志.

我不知道Syntax是否涵盖了所有非样式警告,或者它是否还包含实际警告.如果是的话,你可以把我这样说的文件链接到我吗?我需要实际的证明.我找不到太多关于语法警告突出显示的内容.

我可以忽略这些,没问题,但我看到我的团队正在将这些视为真正的警告.当你使用现有的代码库和团队时......我们浪费了大量的个人风格错误.我喜欢if(boolean == false),因为它是CLEAR.很多这些建议使代码,流血的边缘1980年代风格,保存每个字符有效,但可读...好.. 1980年代码..

例如,我们花了半个小时试图弄清楚if语句中是否有错误,因为它"可以"简化了sorta.

或者我的收藏夹,它告诉你改变它,然后告诉你改回来..

也是的,我知道我可以添加抑制,这会导致我的同事Eclipse出错...

android android-studio

4
推荐指数
1
解决办法
975
查看次数