我正在尝试在 flutter 中对一个小部件进行小部件测试,该小部件使用WidgetsBinding.instance.addPostFrameCallback()在小部件生命周期的一开始就显示一个对话框。
小部件工作正常,但我无法弄清楚如何进行小部件测试,因为测试的第一个 Expect() 是在触发此后帧之前执行的。
无论如何,要“告诉”测试等待所有后帧都被发送?
PD:tester.pump()、tester.pumpAndSettle()等不起作用。
如何在Symfony2 Web应用程序中轻松清晰地实现"维护网站"页面?
我已经为Symfony 1找到了一些关于它的东西,但没有为Symfony2找到任何东西.
谢谢.
我有一个 KMM 应用程序,其中 Android 目标使用 Jetpack Compose。当我尝试使用可绘制资源时出现以下错误:
e: [...]/OnboardingScreen.kt: (33, 46): 未解析的参考:drawable
这是尝试通过 访问可绘制对象的结果painterResource(id = R.drawable.ic_icon)。
我已尝试以下方法来解决该问题:
./gradlew assembleDebug以上都不能解决问题。
这是我的 android 模块的 build.gradle.kts:
plugins {
id("com.android.application")
kotlin("android")
}
val composeVersion = findProperty("version.compose") as String
val composeNavigationVersion = findProperty("version.composeNavigation") as String
val koinVersion = findProperty("version.koin") as String
android {
compileSdk = (findProperty("android.compileSdk") as String).toInt()
defaultConfig {
applicationId = "com.app.app.android"
minSdk = (findProperty("android.minSdk") as String).toInt()
targetSdk = (findProperty("android.targetSdk") as String).toInt()
versionCode = 1 …Run Code Online (Sandbox Code Playgroud) android kotlin android-gradle-plugin android-jetpack-compose kotlin-multiplatform-mobile
我刚安装了较新的Android Studio 2.2,在构建项目时遇到了麻烦:
Error:Execution failed for task ':app:processDebugAndroidTestResources'.
java.io.FileNotFoundException: [path_to_project]/app/build/intermediates/symbols/androidTest/debug/R.txt (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
我正在使用gradle版本2.14.1(因为这个版本的IDE强迫我使用它).
如果我禁用即时运行一切正常,但突然失去这个功能是一种耻辱.
有帮助吗?
编辑:
我尝试了以下但错误仍然发生:
android gradle android-studio instant-run android-studio-2.2
我最近更改了我的旧条码/二维码扫描库,转而使用Google ML Kit 进行条码扫描,自从我这样做后,我通过 crashlytics 收到了一些我以前没有的新崩溃报告。
致命异常:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-Q4EYyt2jmFlLaZ-mHL-J5A==/base.apk"],nativeLibraryDirectories=[/ data/app/com.my.app-Q4EYyt2jmFlLaZ-mHL-J5A==/lib/arm64, /system/lib64, /vendor/lib64, /product/lib64]]] 在 java 中找不到“libbarhopper_v2.so” .lang.Runtime.loadLibrary0(Runtime.java:1011) 在 java.lang.System.loadLibrary(System.java:1660) 在 com.google.android.libraries.barhopper.BarhopperV2.(BarhopperV2.java:5) 在 com .google.mlkit.vision.barcode.zza.a_(zza.java:7) 在 com.google.mlkit.vision.barcode.internal.zzf.b(zzf.java:17) 在 com.google.mlkit.common .sdkinternal.ModelResource.zza(ModelResource.java:1) 在 com.google.mlkit.common.sdkinternal.zzl.run(zzl.java:1) 在 com.google.mlkit.common.sdkinternal.zzp.run(zzp .java:3) 在 com.google。mlkit.common.sdkinternal.MlKitThreadPool.zzd(MlKitThreadPool.java:19) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zza(MlKitThreadPool.java:1) at com.google.mlkit.common.sdkinternal.zzh。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 在 java.lang.Thread 运行(zzh.java:1) .run(Thread.java:784)
致命异常:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-Y8cCSVtTMYVdnQQovlR0cw==/base.apk"],nativeLibraryDirectories=[/data/app/ com.my.app-Y8cCSVtTMYVdnQQovlR0cw==/lib/arm, /system/lib, /vendor/lib]]] 在 java.lang.Runtime.loadLibrary0(Runtime.java:1067) 中找不到“libbarhopper_v2.so”在 java.lang.Runtime.loadLibrary0(Runtime.java:1007) 在 java.lang.System.loadLibrary(System.java:1667) 在 com.google.android.libraries.barhopper.BarhopperV2.(BarhopperV2.java:5)在 com.google.mlkit.vision.barcode.zza.a_(zza.java:7) 在 com.google.mlkit.vision.barcode.internal.zzf.b(zzf.java:17) 在 com.google.mlkit .common.sdkinternal.ModelResource.zza(ModelResource.java:1) 在 com.google.mlkit.common.sdkinternal.zzl.run(zzl.java:1) 在 com.google.mlkit.common.sdkinternal.zzp。运行(zzp.java:3) 在com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(MlKitThreadPool.java:19) 在com.google.mlkit.common.sdkinternal.MlKitThreadPool.zza(MlKitThreadPool.java:1)在 com.google.mlkit.common.sdkinternal.zzh.run(zzh.java:1) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run …
反正有没有像这样在树枝上重复一个块:
<title>{% block title %}{% endblock %} | MyBusiness</title>
<meta name="title" content="{% block title %}{% endblock %} | MyBusiness"/>
Run Code Online (Sandbox Code Playgroud)
为了只声明两个块一次?像那样:
{% block title %}
The title I want to show in each title and metaTitle tags.{{ parent() }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud) 我的Android Studio中有一些日志过滤器,每次运行项目时,日志过滤器都会更改为默认的app:packagename.有没有办法通过执行来保留一个自定义过滤器?
我有一个 Mapper 类,其中包含一种将一种类型的用户转换为另一种类型的用户的方法:
/**
* Transform new {@link User} to legacy {@link com.xxx.xxx.bo.bean.User}.
* @param user User to transform.
* @return Transformed user.
* @throws MappingException If an error occurred when transforming.
*/
public com.xxx.xxx.bo.bean.User transform(User user)
throws MappingException {
try {
com.xxx.xxx.bo.bean.User legacyUser =
new com.xxx.xxx.bo.bean.User();
legacyUser.setIdUser(user.getIdUser());
legacyUser.setIdUserType(user.getIdUserType());
legacyUser.setName(user.getName());
legacyUser.setSurname(user.getSurname());
legacyUser.setEmail(user.getEmail());
legacyUser.setUserAccount(user.getUserAccount());
legacyUser.setPassword(user.getPassword());
legacyUser.setUserType(user.getUserType());
legacyUser.setIsOnlyAgent(user.isIsOnlyAgent());
legacyUser.setAgentId(user.getAgentId());
legacyUser.setIdVaAgent(user.getIdVaAgent());
legacyUser.setDesktopUrl(user.getDesktopUrl());
return legacyUser;
} catch (Exception e){
throw new MappingException("Error when mapping User to legacy User: "
+ e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
我写了一个测试来确保映射成功: …
我有一个 ByteBuffer,我需要将其内容添加到 POST 请求中,以便远程显示代表的图像;但我不知道该怎么做。
这样做是行不通的:
byteBuffer.array()
Run Code Online (Sandbox Code Playgroud)
我尝试将其转换为字节数组,但它不起作用,因为图像无法正确显示:
byte[] byteArray = new byte[byteBuffer.remaining()];
frame.duplicate().get(byteArray);
HttpResponse response = null;
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(URL);
post.setEntity(new ByteArrayEntity(byteArray));
Run Code Online (Sandbox Code Playgroud)
我也考虑过将其转换为图像并获取其字节数组,但我不知道如何做到这一点以及它是否有效......
任何帮助将不胜感激。
我在 flutter 中有一个小部件测试,它泵送被测小部件,当它打开时,执行后台操作 (staticWrapper.requestPermission()),该操作返回一个 Future,并根据其结果设置一个状态。问题是测试没有等待这个 future 完成,测试代码:
/// When micro permission denied, should show error message.
testWidgets('When micro permission denied, should show error message.',
(WidgetTester tester) async {
when(staticWrapper.requestPermission(Permission.RecordAudio))
.thenAnswer((_) => Future.value(PermissionStatus.denied));
await tester.pumpWidget(widget);
final loginText = find.text(callScreen_microPermissionDenied);
expect(loginText, findsOneWidget);
});
Run Code Online (Sandbox Code Playgroud)
受影响的小部件代码:
void _requestMicroPermission() async {
final result =
await staticWrapper.requestPermission(Permission.RecordAudio);
debugPrint("Microphone permission status: $result");
if (result == PermissionStatus.authorized) {
native.init();
} else {
setState(() {
_loginText = tnsManager.getText(TranslationsManager.callScreen_microPermissionDenied);
});
}
Run Code Online (Sandbox Code Playgroud)
}
Expect() 方法在 setState() 调用之前调用。
有什么帮助吗?
android ×4
flutter ×2
java ×2
arrays ×1
barcode ×1
bytebuffer ×1
flutter-test ×1
google-mlkit ×1
gradle ×1
instant-run ×1
kotlin ×1
kotlin-multiplatform-mobile ×1
mapper ×1
mockito ×1
php ×1
qr-code ×1
symfony ×1
twig ×1
unit-testing ×1