小编dud*_*udi的帖子

无法解析android.support.design.迁移到AndroidX后

我试图使用此代码片段获取Snackbar的Textview:

snackbarView.findViewById<TextView>(android.support.design.R.id.snackbar_text)  
Run Code Online (Sandbox Code Playgroud)

但Android Studio无法解析设计库.

如何才能使此代码生效?

android textview android-support-library android-snackbar androidx

53
推荐指数
4
解决办法
7828
查看次数

未找到Gradle DSL方法:更新到Gradle 5.2.1后为“ destination()”

更新到Gradle 5.2.1之后,我的构建因以下错误而失败:

Gradle DSL method not found: 'destination()'

我发现这个错误与我的 analysis.gradle

我的analysis.gradle样子

apply plugin: 'checkstyle'
apply plugin: 'pmd'
apply plugin: 'jacoco'

jacoco {
toolVersion = "0.7.7.201606060606"
}

check.dependsOn 'checkstyle', 'pmd', 'lint'

task checkstyle(type: Checkstyle) {
println "----- checkstyle -----"
configFile file(projectDir.getAbsolutePath() + '/analysis/checkstyle-ruleset.xml')

source 'src'
source '../domain/src'
source '../util/src'
include '**/*.java'
exclude '**/gen/**'
exclude '**/java-gen/**'
exclude '**/androidTest/**'
exclude '**/test/**'

ignoreFailures = true

classpath = files()

reports {
    xml {
        destination buildDir.absolutePath + "/outputs/reports/checkstyle_report.xml"
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我认为我必须替换destination标志,但是我不知道如何替换它。

gradle build.gradle android-gradle-plugin

12
推荐指数
1
解决办法
6187
查看次数

将JSON写入文件

我有一个类compositionJSON.该类有一个方法调用makeJSONObject,它创建一个JSON-Object并将东西放入其中.这是该类的代码.

public class CompositionJso extends JSONObject {



public JSONObject makeJSONObject (String title, String desc, ArrayList<String> imgPath, ArrayList<Resources> imgView) {

    JSONObject obj = new JSONObject() ;

    try {
        obj.put("title", title);
        obj.put("desc", desc);
        obj.put("imgPath", imgPath);
        obj.put("imgViewPath", imgView);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    return obj;
}
Run Code Online (Sandbox Code Playgroud)

现在我创建这个类的一个实例,并在另一个类中调用该方法.之后我想将JSONObject写入文件并将其保存在设备上的SD卡上.这是代码:

 saveCompo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setName();
            createJSONFolder();
            CompositionJso obj = new CompositionJso();
            obj.makeJSONObject(compoTitle, compoDesc, imgPaths, imageViewPaths);
            MyCompositionsListActivity.buildList();

            try {
                Writer output = null;
                File file = new File("storage/sdcard/MyIdea/MyCompositions/" + compoTitle …
Run Code Online (Sandbox Code Playgroud)

android json filewriter

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

Jacoco 无法读取 .ec 文件

为了生成单元和 Ui 测试的代码覆盖率,我实现了这个jacoco.gradle脚本

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.8.5"
}

tasks.withType(Test) {
    jacoco.includeNoLocationClasses = true
}

project.afterEvaluate {
    android.applicationVariants.all { variant ->
        def variantName = variant.name
        def testTaskName = "test${variantName.capitalize()}UnitTest"
        def uiTestCoverageTaskName = "create${variantName.capitalize()}CoverageReport"

        tasks.create(
                name: "${testTaskName}Coverage",
                type: JacocoReport,
                dependsOn: ["$testTaskName", "$uiTestCoverageTaskName"]) {
            group = "Reporting"
            description = "Generate Jacoco coverage reports for the ${variantName.capitalize()} build."

            reports {
                html.enabled = true
                xml.enabled = true
            }

            def excludes = [
                    '**/R.class',
                    '**/R$*.class',
                    '**/BuildConfig.*',
                    '**/Manifest*.*',
                    '**/*Test*.*',
                    'android/**/*.*',
                    '**/*Application*.*', …
Run Code Online (Sandbox Code Playgroud)

android unit-testing code-coverage gradle jacoco

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

如何使用 Espresso 测试片段是否可见

Activity用一个按钮写了一个非常简单的。单击按钮后,我将开始一个新的Fragment. 现在我想在我的 Espresso UI 测试中测试这个逻辑。所以我为我写了这个 UI 测试Activity

@RunWith(AndroidJUnit4::class)
@LargeTest
class MainMenuUiTest {

@get: Rule
val activityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)

 @Test
 fun switchToFragment() {
     onView(withId(R.id.btn)).perform()
 }
Run Code Online (Sandbox Code Playgroud)

}

如何测试Fragment单击按钮时是否显示my ?

android ui-testing android-fragments android-espresso

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

如何从片段场景中获取片段实例

在我的测试用例中,我想获得我在片段场景中启动的片段的视图,如下所示:

val scenario = launchFragment<MyFragment>()

MyFragment我有一个rootView返回片段的绑定视图的方法。在我的测试中,我想获取根视图并将其保存在另一个字段中。这是我已经尝试过的

val rootView: ViewGroup? = null
val scenario = launchFragment<MyFragment>()
scenario.onFragment { fragment -> fragment.rootView {
     rootView = fragment.rootView
  }
Run Code Online (Sandbox Code Playgroud)

如何从片段场景中保存视图?

android fragment android-fragments android-testing androidx

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

如何使用 Dagger2 在 ViewModel 构造函数中注入 WorkManager 实例?

我想用 Dagger2 注入一个 WorkManager 实例,以便在我的 ViewModel 中使用它,如下所示

class MyViewModel @Inject constructor(workManager: WorkManager) : ViewModel()
Run Code Online (Sandbox Code Playgroud)

当我尝试为 WorkManager 创建一个模块来提供它的实例时,我收到一条错误消息,指出我无法从抽象类提供。如何在我的 ViewModel 构造函数中注入 WorkManager 实例?

android viewmodel dagger dagger-2 android-workmanager

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

如何在java中每隔x秒执行一次方法

我想每秒执行一次方法20次.

其实我有计时器

Timer timer = new Timer();
int begin = 0;
int timeInterval = 1000;

timer.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
        //call the method
    }
}, begin, timeInterval);
Run Code Online (Sandbox Code Playgroud)

如何以此间隔调用方法20次?

java timer

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

Raspberry-pi 上的 Nexcloud 安装因 docker compose 失败

尝试在 rpi4 上安装 nextcloud。

尝试在运行 buster 的 rpi4 上安装 nextcloud 时出现以下错误

Initializing nextcloud 23.0.4.1 ...,
touch: setting times of '/var/www/html/nextcloud-init-sync.lock': Operation not permitted,
Initializing nextcloud 23.0.4.1 ...,
Another process is initializing Nextcloud. Waiting 10 seconds...,
Run Code Online (Sandbox Code Playgroud)

我的 docker-compose 看起来像这样

version: '2'
services:
  db:
    image: yobasystems/alpine-mariadb:latest
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /nextcloud:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=YOURROOTPASSWORD
      - MYSQL_PASSWORD=YOURPASSWORD
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  app:
    image: nextcloud
    ports:
      - 8181:80
    links:
      - db
    volumes:
      - /nextcloud:/var/www/html
    restart: always
Run Code Online (Sandbox Code Playgroud)

请帮忙!

raspberry-pi docker docker-compose nextcloud

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

如何将 bash 脚本执行到 makefile 中

我有一个简单的 bash 脚本,用于安装和压缩 NodeJS 应用程序。它在当地工作得很好。现在我想从 Makefile 执行这个脚本。所以我写了这段代码

.FOO: install_and_zip
    install_and_zip: ./install_and_zip_foo.sh
Run Code Online (Sandbox Code Playgroud)

因此,如果我使用此 Makefile 运行此文件,则会make foo收到此错误消息:

make: *** No rule to make target `foo'.  Stop.
Run Code Online (Sandbox Code Playgroud)

Makefile 和 bash 脚本在同一目录中。

我做错了什么?你能帮我修复这个 Makefile 吗?

bash makefile

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