遇到编译问题,希望能提供帮助。现在还有交流群么
[环境]
基于 v0.12.0 在本地 android studio 编译,gradle6.1.1 + agp 4.0 + sdk 35.0.0 + ndk25 出现好几个编译问题,
app 的 build.gradle 配置
implementation 'com.hyman:flowlayout-lib:1.1.2'
implementation 'com.yydcdut:sdlv:0.7.6'
implementation('com.theartofdev.edmodo:android-image-cropper:2.5.1') {
exclude group: "com.android.support"
}
mdilibray 的 build.gradle
implementation 'com.linkedn.dexmaker:dexmaker:2.19.1'
以上四个依赖都下载不了,我还好有本地的存货,用 files 方式临时替代。
[问题]
但 build 进手机 (android 10) ,launch 后提示 "com/android/dx/rop/type/Type"找不到
"D/ClassUtil: Scan class for com.alipay.hulu.util.VideoUtils
D/ClassUtil: Scan class for com.alipay.hulu.util.ZipUtil
E/LauncherApplication: 无法处理 : java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/dx/rop/type/Type;
at com.android.dx.TypeId.(TypeId.java:36)
at com.android.dx.TypeId.get(TypeId.java:108)
at com.mdit.library.Enhancer.getSubClass(Enhancer.java:98)
at com.mdit.library.Enhancer.create(Enhancer.java:131)
at com.mdit.library.Enhancer.create(Enhancer.java:180)
at com.alipay.hulu.common.application.LauncherApplication$ServiceReference.initializedService(LauncherApplication.java:1186)
at com.alipay.hulu.common.application.LauncherApplication$ServiceReference.(LauncherApplication.java:1128)
at com.alipay.hulu.common.application.LauncherApplication._registerServices(LauncherApplication.java:350)
at com.alipay.hulu.common.application.LauncherApplication.registerServices(LauncherApplication.java:307)
at com.alipay.hulu.common.application.LauncherApplication$1.run(LauncherApplication.java:217)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)"
推荐用例我都用了 3 年了,我不觉得录制的成本有多高。
一个有代表性的需求录 1-2 个用例,录 1 个用例也就 1 分钟的时间。录用例的时机就是在功能测试阶段,功能测的差不多了就录一个 general 的用例,当然,用例的描述要清晰,数据、环境、步骤、需求描述都要完善。
BTW,即使不做用例录制,测试人也得做用例基线整理吧?如果连用例基线都不整理,就不要搞精准测试了,连基本的测试素质都不具备。
另外一个问题,代码一直变,用例库会越来越大。是的,每个版本都要录用例,这时推荐的用例要有精简的算法,考虑的因子包括用例的新鲜程度,覆盖 diff 方法的数量等等,经验看用例的新鲜程度是最重要的。
再另一个问题,要尽量减少无效方法的干扰,例如去掉网络的方法,关注跟业务线强相关的方法。精准测试不是全部有效,只是部分有效,部分有效我理解为跟自己具体业务团队强关联,就会有 hard code。试图做一个超级大的系统去解决所有问题感觉不太现实。
1、java 覆盖率不难,后端 jacoco 起 agent 就可以了。难点是前端 涉及不同的语言,oc,java,js,flutter;涉及符号文件,源码,覆盖率文件
2、调用链不难,难是解决匿名方法,block 的写法。而且 asm 是针 java 的,那 oc,js,flutter 那些怎么办。有没有通用的 bison, flex 扫描方法?
3、推荐用例关键是用例维护,录制;只要不维护半年就荒废了,也是持续投入的过程。
从 本人的实践看,要做到贴近业务是难点,那些通用的功能做着也是花架子
按照楼主的步骤,ios 模拟器已启动,但在 macaca run 的时候提示没有找到 simulator。我在 macaca-mobile-sample.test.js 设置其他 deviceName,但是 run 还是启动了 iPhone 6s Plus,即使我配置了 iPhone 6s Plus,依然提示找不到 simulator
macaca doctor 的配置如下:
Node.js checklist:
node env: /usr/local/bin/node
node version: v6.2.1
iOS checklist:
Xcode is installed at: /Applications/Xcode.app/Contents/Developer
Xcode Command Line Tools is ready, version: 2343.
ios_webkit_debug_proxy is installed at: /usr/local/bin/ios_webkit_debug_proxy
Android checklist:
JAVA version is 1.8.0_91
JAVA_HOME is not set
ANDROID_HOME is not set
Installed driver list:
ios: 1.0.30