如何使用数据绑定和匕首2找到错误?

时间:2018-01-26 07:34:16

标签: android data-binding dagger-2

我几天前更新了Android Studio。并更新sdk,构建工具和架构师组件

add_filter('woocommerce_package_rates','subtotal_based_tiered_shipping', 10, 2 );
function subtotal_based_tiered_shipping( $rates, $package ){
    $threshold1 = 20;
    $threshold2 = 30;
    $subtotal = WC()->cart->subtotal;

    if ( $subtotal < $threshold1 ) 
    { // Below 20 ('flat_rate:1' is enabled)
        unset( $rates['flat_rate:5'] );
        unset( $rates['flat_rate:6'] );
    } 
    elseif ( $subtotal >= $threshold1 && $subtotal < $threshold2 ) 
    { // Starting from 20 and below 30 ('flat_rate:5' is enabled)
        unset( $rates['flat_rate:1'] );
        unset( $rates['flat_rate:6'] ); 
    } 
    elseif ( $subtotal >= $threshold2 ) 
    { // Starting from 30 and up ('flat_rate:6' is enabled)
        unset( $rates['flat_rate:1'] );
        unset( $rates['flat_rate:5'] );  
    }
    return $rates;
}

由于我的应用程序未编译。 我得到像

这样的错误
compileSdkVersion 27
minSdkVersion 15
targetSdkVersion 27

arch_core_version = "1.1.0"
arch_room_version = "1.1.0-alpha1"
arch_lifecycle = "1.1.0"
//tool_version = "26.0.2"
tool_version = "27.0.3"
//support_version = "26.1.0"
support_version = "27.0.2"
dagger_version = "2.14.1"
retrofit_version = "2.3.0"
stetho = "1.5.0"
okhttp = "3.9.0"
constraint_layout_version = "1.1.0-beta1"
glide_version = "4.2.0"
timber_version = "4.5.1"
androidasync = "2.+"
cookie = "v1.0.1"
firebase = "11.8.0"

和其他片段和活动相似。

上次我半年前编写了我的申请表。没有错误。

我发现我需要使用--stacktrace和--debug

进行编译

我收到错误

app/src/main/java/com.example/ui/home/HomeFragment.java
Error:(20, 45) error: package com.example.databinding does not exist
Error:(33, 48) error: cannot find symbol class FragmentHomeBinding

类似于另一个片段和活动。 完整记录超过14 000行

我尝试将gradle更改为3.1.0-alpha06并添加android.databinding.enableV2 = true。 但我有同样的错误。

谷歌在我的xml中说错了。我不确定我在过去半年是否做出了改变,或者没有。

我尝试在更新后编译成功的其他应用程序中添加一些错误,但我在控制台日志中出错。我无法像在我的第一个应用程序中那样得到相同的错误,因此我不知道在哪里查找错误。

2 个答案:

答案 0 :(得分:3)

Mustafa Berkay Mutlu的评论可以帮助我解决问题。

Note in Dagger's doc

Github issue

Android studio默认只显示100个错误。

我添加了

gradle.projectsEvaluated {
  tasks.withType(JavaCompile) {
    options.compilerArgs << "-Xmaxerrs" << "500" // or whatever number you want
  }
}

到我的build.gradle(Project)和246行我看到了错误导致我的应用程序崩溃。

我有这个代码

@Query("select id from Message where dialogId = :dialogId order by id limit 1")
List<Message> lastId(long dialogId);

代码在上次更新之前工作但是现在我收到错误消息类包含的字段多于查询返回的字段。

我添加了新课程

public class OnlyId {
    private final int id;

    public OnlyId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }
}

答案 1 :(得分:1)

添加到gradle(顶级gradle)

allprojects {
     gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xmaxerrs" << "500"
        }
    }
}