小编Fad*_*ara的帖子

使用 Gradle 任务运行单元测试时出现 NoClassDefFoundError

我有一个使用动态功能模块的项目,我想通过 gradle 任务(用于我的 CI 目的)在功能模块中运行我的单元测试:

./gradlew :feature_product:test
Run Code Online (Sandbox Code Playgroud)

但它总是为我NoClassDefFoundError提供依赖于基本模块类的测试:

com.example.android.feature.product.ProductViewTest > on vote change to negative FAILED
java.lang.NoClassDefFoundError: app.BaseView
Run Code Online (Sandbox Code Playgroud)

ProductView功能模块中的类从BaseView基础模块扩展而来。

奇怪的是,它在 Android Studio 中运行时成功了,它运行良好。

安卓工作室

然后,当我通过命令行运行和运行 Android Studio 时,我注意到日志中有一些不同的东西。Android Studio 中的第一行是generateDebugSources我运行时不存在的内容./gradlew test

Executing tasks: [:lib_ui:generateDebugSources, ...]
Run Code Online (Sandbox Code Playgroud)

我该如何解决?./gradlew test当我按 Ctrl+Shift+R 时,Android Studio 是否有与提供的命令不同的命令?

junit android unit-testing gradle android-studio

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

react-router-dom BrowserRouter在构建后无法正常工作

这是我第一次尝试反应.我创建了一个项目create-react-app,然后用于路由,我使用React Router V4 for web react-router-dom.

这是我的index.js档案

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router } from 'react-router-dom';
import App from './App';
import './index.css';

ReactDOM.render(
  <Router>
    <App />
  </Router>,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

使用启动服务器时没有问题npm start.但是当我构建应用程序时npm run build,将它放在我的wwwApache服务器的文件夹中并访问它,我只能<!-- react-empty: 1 -->在我的内部获得空白页面root div.

<div id="root">
  <!-- react-empty: 1 -->
</div>
Run Code Online (Sandbox Code Playgroud)

我试过寻找类似的情况,但答案总是关于添加historyApiFallbackwebpack.config.js或gulp,我在create-react-app模板的任何地方都找不到.

我试过了HashRouter,它运行正常,但是/#/在网址中有不合需要的.

在构建应用程序后,如何让BrowserRouter工作?

javascript reactjs react-router react-router-dom

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

Android Firebase AuthStateListener电子邮件已验证

我有一个FireIn的SignInActivity AuthStateListener

final FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
final FirebaseAuth.AuthStateListener firebaseAuthListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(FirebaseAuth auth) {
        FirebaseUser user = auth.getCurrentUser();
        if (user != null && user.isEmailVerified()) {
            firebaseAuth.removeAuthStateListener(this);
            startActivity(new Intent(LoginActivity.this, MainActivity.class));
        }
    }
};
firebaseAuth.addAuthStateListener(firebaseAuthListener);
Run Code Online (Sandbox Code Playgroud)

成功注册新帐户后,我setVisibity(View.Visible)将在活动中带有EditTextEmail&的验证页VerifyButton(以防有人想重新发送电子邮件验证)。

我想做的是,当我从电子邮件帐户验证电子邮件时,我希望页面自动启动,MainActivity而不是LoginActivity像我的短信那样闲置,当短信中收到验证码时,应用程序会读取短信并导航到MainActivity。是否可以通过电子邮件验证来实现?因为FirebaseAuthState即使我单击电子邮件上的验证链接,也从未改变。

我需要类似的东西 OnFirebaseAuthUserEmailVerifiedListener

我是Firebase的新手,如果无法实现此目标,请给我建议。

java android firebase firebase-authentication

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

将 Kotlin MutableMap 转换为 java.util.HashMap

我正在处理一个相当古老的项目,其中包含大量 Java 代码,要替换它,这太麻烦了,而且由于 kotlin 比 Java 好得多,我正在尝试将所有新代码混合在一起kotlin 中的代码,但是当我尝试使用此 kotlin 代码访问 java 代码时

val params = mutableMapOf<String, String>(
    "name" to response.name,
    "type" to response.type
)
product.params = params
Run Code Online (Sandbox Code Playgroud)

我在下面有一个红色下划线params,它说

Required: Hashmap<String!, Any!>!
Found: MutableMap<String, String>
Run Code Online (Sandbox Code Playgroud)

这是我的 java setter

public void setParams(HashMap<String, Object> params){
    this.params = params;
}
Run Code Online (Sandbox Code Playgroud)

我可以在不更改 java 代码的情况下解决这个问题吗?如果可能,请提供帮助,如果可能,请提供帮助,以及解决此问题的解决方法是什么。

java hashmap kotlin

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