相关疑难解决方法(0)

如何使用JACK编译器执行缩小和混淆?

谷歌已经为Android开发者发布了针对Android Studio 2.1 的新JACK编译器测试版.

我的问题是,我们如何使用JACK为APK进行模糊处理?下面的文章说JACK 本地执行模糊处理并且不需要Proguard:

以下文章说JACK使用Proguard配置文件(即.pro文件)来执行混淆:

它也说

在此过程中,Jack还处理任何请求的代码缩小(缩小和/或混淆).

这到底是什么意思?我们是否必须使用该minifyEnabled选项并定义.pro包含Proguard选项的文件?

综上所述:

  • 我们究竟如何与JACK实现混淆?我们是否可以绕过Proguard的使用,或者Proguard在混淆过程中扮演事实上的角色,即使我们使用JACK编译?

  • JACK目前是否支持混淆,是否可以在Android Studio的稳定(即非beta/canary)版本中使用?

注意:

我已经提到了以下帖子:

进一步参考:

更新:

答案马特Insko是有益的,但我想更详细,更准确,规范的答案.

android android-sdk-tools android-studio android-jack-and-jill android-proguard

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

尝试使用Espresso单击RecyclerView项时,没有虚拟方法findViewHolderForPosition(I)

我正在尝试进行简单的浓缩咖啡测试,找到RecyclerView没有特定标签的第一个项目, 然后点击它.为实现这一点,我添加espresso-contrib到这样的项目:

androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') {
    // Necessary to avoid version conflicts
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'design'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude group: 'com.android.support', module: 'appcompat-v7'
    exclude group: 'com.android.support', module: 'support-annotations'
    exclude module: 'recyclerview-v7'
}
Run Code Online (Sandbox Code Playgroud)

并在我的测试用例中写下以下表达式: onView(withId(R.id.sresults_list_recycler)).perform(RecyclerViewActions.actionOnHolderItem(new FirstNotSoldOutMatcher(), click()).atPosition(1));

Matcher完美运行并RecyclerView滚动到目标项目.但后来我得到错误:

java.lang.NoSuchMethodError: No virtual method findViewHolderForPosition(I)Landroid/support/v7/widget/RecyclerView$ViewHolder; in class Landroid/support/v7/widget/RecyclerView; or its super classes (declaration of 'android.support.v7.widget.RecyclerView' appears in /data/app/com.example-1/base.apk)
at android.support.test.espresso.contrib.RecyclerViewActions$ActionOnItemAtPositionViewAction.perform(RecyclerViewActions.java:288)
at android.support.test.espresso.contrib.RecyclerViewActions$ActionOnItemViewAction.perform(RecyclerViewActions.java:232)
at android.support.test.espresso.ViewInteraction$1.run(ViewInteraction.java:144)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.Handler.handleCallback(Handler.java:751) …
Run Code Online (Sandbox Code Playgroud)

android android-espresso android-proguard

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