编译报错app:compile_releaseDebugJavaWithJavac

本文详细解析了一个由于ButterKnife注解处理器在处理@OnClick注解时遇到重复ID导致的编译错误。错误表现为找不到DataBinding包,但实际原因是ButterKnife处理上的问题。作者通过检查R文件和源码,定位到了重复ID的问题所在,并分享了解决过程和心得。
项目编译报错具体错误如下:

在这里插入图片描述
然后突然发现好多类都在报错
在这里插入图片描述

以我多年(只有两年^ - ^)的开发经验来看肯定是哪个资源文件导致的。点击build左侧有ab字母的按钮
在这里插入图片描述
拖到最底下,上面的错其实不是真正问题原因,如下:在这里插入图片描述

这里我们可以看到错误: 程序包xxx.xxx.databinding不存在可是在我的项目目录里并没有databinding这个包,而是在generatedjava下有一个,这里的代码都是编译时期自动生成的,比如DataBinding;butterknife;dagger。我的问题就出在butterknife上。
在这里插入图片描述
错误: 程序包xxx.xxx.databinding这个报错原因其实是butterknife问题导致编译没过,所以DataBinding自动生成的代码也有问题

错误: @OnClick annotation for method contains duplicate ID 2131298051. (com.popupwindow.MainRemoteWindow.onViewClicked)
    public void onViewClicked(View view) {

定位到MainRemoteWindow类看下源码


    @OnClick({R.id.title, R.id.right_top_btn, R.id.keyboard_clean, R.id.remote_close, R.id.remote_exit
            , R.id.remote_change, R.id.remote_voice_down, R.id.remote_voice_up, R.id.remote_center_control_ok,
            R.id.remote_center_control_up, R.id.remote_center_control_down, R.id.remote_center_control_left, R.id.remote_center_control_right,
            //多余了一行
            R.id.remote_center_control_up, R.id.remote_center_control_down, R.id.remote_center_control_left, R.id.remote_center_control_right})

    public void onViewClicked(View view) {
    }

这下看到问题了,在R文件中第一个多余的R.id.remote_center_control_up的id值的16进制是0x7f090703,换算成10进制刚好就是2131298051,可能是手快了多复制了一行,一个很小的失误浪费的大半天才解决。
在这里插入图片描述
在这里插入图片描述
这个问题好难发现啊,没有具体的错误日志,还误导我去找是不是少了databinding的包,是不是databinding跟其他包冲突等等;butterknife也没有提示,部门三个人找了半天,最终还是让我拿下了。

总结:遇到类似问题可以参考我的解决办法,看到错的时候不要慌,仔细通过现有的日志去分析产生的原因。
几十几百的错,一般都是布局、资源文件、.9图、包冲突、Studio出BUG等等导致编译没过。

shu3.xml: <android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:app=“http://schemas.android.com/apk/res-auto” xmlns:tools=“http://schemas.android.com/tools” android:layout_width=“match_parent” android:layout_height=“match_parent” android:background=“@drawable/gradient_background” tools:context=“.ShuHai3Activity”> <!-- Toolbar --> <RelativeLayout android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <Button android:id="@+id/back_button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:background="@android:color/transparent" android:contentDescription="返回上一页" android:foreground="?android:attr/selectableItemBackground" android:text="返回" android:textColor="@android:color/white" android:textSize="19dp" /> </RelativeLayout> <!-- 播放视频区域 --> <!-- 时间线和缩略图区域 --> <FrameLayout android:id="@+id/video_container" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintHeight_percent="0.55" android:background="@android:color/black" app:layout_constraintBottom_toTopOf="@id/thumbnail_scrollview" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.6" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/toolbar" app:layout_constraintVertical_bias="0.0"> <!-- 模拟萤石播放加载动画 --> <ProgressBar android:id="@+id/video_loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <!-- 视频播放View,可以替换成具体的视频播放控件 --> <VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="视频播放区域" android:textColor="@android:color/white" android:visibility="visible" /> </FrameLayout> <ScrollView android:id="@+id/thumbnail_scrollview" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintHeight_percent="0.45" android:fillViewport="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/video_container"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.GridLayout android:id="@+id/gridLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:columnCount="2" app:rowCount="0" app:alignmentMode="alignBounds" app:useDefaultMargins="true" android:padding="8dp"> <!-- 多个缩略图子项 --> <!-- <ImageView--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="wrap_content"--> <!-- app:layout_columnWeight="1"--> <!-- android:layout_margin="4dp"--> <!-- android:adjustViewBounds="true"--> <!-- android:contentDescription="萤石缩略图"--> <!-- android:src="@drawable/default_thumbnail" />--> <!-- <ImageView--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="wrap_content"--> <!-- app:layout_columnWeight="1"--> <!-- android:layout_margin="4dp"--> <!-- android:adjustViewBounds="true"--> <!-- android:contentDescription="萤石缩略图"--> <!-- android:src="@drawable/default_thumbnail" />--> <!-- <ImageView--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="wrap_content"--> <!-- app:layout_columnWeight="1"--> <!-- android:layout_margin="4dp"--> <!-- android:adjustViewBounds="true"--> <!-- android:contentDescription="萤石缩略图"--> <!-- android:src="@drawable/default_thumbnail" />--> <!-- <ImageView--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="wrap_content"--> <!-- app:layout_columnWeight="1"--> <!-- android:layout_margin="4dp"--> <!-- android:adjustViewBounds="true"--> <!-- android:contentDescription="萤石缩略图"--> <!-- android:src="@drawable/default_thumbnail" />--> <!-- <ImageView--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="wrap_content"--> <!-- app:layout_columnWeight="1"--> <!-- android:layout_margin="4dp"--> <!-- android:adjustViewBounds="true"--> <!-- android:contentDescription="萤石缩略图"--> <!-- android:src="@drawable/default_thumbnail" />--> <!-- <ImageView--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="wrap_content"--> <!-- app:layout_columnWeight="1"--> <!-- android:layout_margin="4dp"--> <!-- android:adjustViewBounds="true"--> <!-- android:contentDescription="萤石缩略图"--> <!-- android:src="@drawable/default_thumbnail" />--> </android.support.v7.widget.GridLayout> </LinearLayout> </ScrollView> </android.support.constraint.ConstraintLayout> 修改下面shuhaisp.xml布局和上面shu3.xml布局一样,保持shuhaisp.xml依赖不变必须使用android支持库。shuhaisp.xml: <!-- tools:context=".ShuhaiSp"--> <!-- <!– 顶部工具栏 –>--> <RelativeLayout android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#44bd32"> <Button android:id="@+id/back_button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:background="@android:color/transparent" android:contentDescription="返回上一页" android:foreground="?android:attr/selectableItemBackground" android:text="返回" android:textColor="@android:color/white" android:textSize="19dp" /> </RelativeLayout> <!-- 视频播放区域 --> <FrameLayout android:id="@+id/video_container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_below="@id/toolbar" android:layout_above="@+id/thumbnail_scrollview" android:layout_marginTop="0dp" android:background="@android:color/black"> <ProgressBar android:id="@+id/video_loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="视频播放区域" android:textColor="@android:color/white" android:visibility="visible" /> </FrameLayout> <!-- 缩略图区域 --> <ScrollView android:id="@+id/thumbnail_scrollview" android:layout_width="match_parent" android:layout_height="0dp" android:layout_alignParentBottom="true" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.widget.GridLayout android:id="@+id/gridLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="2" android:rowCount="0" android:alignmentMode="alignBounds" android:useDefaultMargins="true" android:padding="8dp"> <!-- 缩略图示例 --> <!-- <ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_margin="4dp" android:adjustViewBounds="true" android:contentDescription="缩略图" android:src="@drawable/default_thumbnail" /> --> </android.widget.GridLayout> </LinearLayout> </ScrollView> </RelativeLayout>。build.gradle(app):apply plugin: 'com.android.application' android { useLibrary 'org.apache.http.legacy' compileOptions { encoding "GBK" } compileSdkVersion 24 buildToolsVersion "24.0.0" aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false defaultConfig { applicationId "com.jd.projects.wulianwang" multiDexEnabled true minSdkVersion 16 targetSdkVersion 24 versionCode 9 versionName "1.0.0.8" ndk { abiFilters 'armeabi' } } lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } signingConfigs { release { storeFile file('D:\\biancheng\\jd_jdwlw-master\\android_Jdwlw\\wulianwang.jks') storePassword '666666' keyAlias 'wulianwang' keyPassword '666666' } } buildTypes { release { minifyEnabled false signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' aaptOptions { ignoreAssetsPattern '!sdfg1.apk:!sdfg2.apk:!sdfg3.apk:!sdfg4.apk:' } } debug { minifyEnabled false signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } lintOptions { checkReleaseBuilds false abortOnError false } } dependencies { compile project(':mPAndroidChartLib') compile project(':mqttlibs') compile files('libs/1_6XDevSDK_1.29_beta.jar') compile files('libs/afinal_0.5.1_bin.jar') compile files('libs/AudioEngineSDK.jar') compile files('libs/BaiduLBS_Android.jar') compile files('libs/classes.jar') compile files('libs/glide-3.7.0.jar') compile files('libs/HCNetSDK.jar') compile files('libs/INetSDK.jar') compile files('libs/IPlaySDK.jar') compile files('libs/jpush-sdk-release1.7.5.jar') compile files('libs/jxl.jar') compile files('libs/ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar') compile files('libs/MCRSDK.jar') compile files('libs/PlayerSDK.jar') compile files('libs/ToUProxy.jar') compile files('libs/universal-image-loader-1.9.3.jar') compile files('libs/vmsnetsdk.jar') compile files('libs/volley.jar') compile files('libs/xUtils-2.6.14.jar') compile 'com.google.code.gson:gson:2.2.4' compile 'com.android.support:support-v4:22.4.0' compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.google.android.gms:play-services-appindexing:8.4.0' compile files('libs/okhttp-2.7.5.jar') // compile files('libs/okio-1.6.0.jar') // implementation 'com.squareup.okhttp3:okhttp:4.9.1' implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1' implementation 'com.squareup.retrofit2:retrofit:2.6.0' implementation 'com.squareup.retrofit2:converter-gson:2.6.0' implementation 'com.squareup.retrofit2:converter-scalars:2.4.0' } 严格依据上述build.gradle(app)的依赖来修正shuhaisp.xml布局
最新发布
06-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值