我试图使用此代码片段获取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
更新到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标志,但是我不知道如何替换它。
我有一个类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) 为了生成单元和 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) 我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 ?
在我的测试用例中,我想获得我在片段场景中启动的片段的视图,如下所示:
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)
如何从片段场景中保存视图?
我想用 Dagger2 注入一个 WorkManager 实例,以便在我的 ViewModel 中使用它,如下所示
class MyViewModel @Inject constructor(workManager: WorkManager) : ViewModel()
Run Code Online (Sandbox Code Playgroud)
当我尝试为 WorkManager 创建一个模块来提供它的实例时,我收到一条错误消息,指出我无法从抽象类提供。如何在我的 ViewModel 构造函数中注入 WorkManager 实例?
我想每秒执行一次方法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次?
尝试在 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)
请帮忙!
我有一个简单的 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 吗?
android ×6
androidx ×2
gradle ×2
bash ×1
build.gradle ×1
dagger ×1
dagger-2 ×1
docker ×1
filewriter ×1
fragment ×1
jacoco ×1
java ×1
json ×1
makefile ×1
nextcloud ×1
raspberry-pi ×1
textview ×1
timer ×1
ui-testing ×1
unit-testing ×1
viewmodel ×1