GVKun编程网logo

Android中使用databinding编译时出现的error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'

13

在本文中,您将会了解到关于Android中使用databinding编译时出现的error:Executionfailedfortask':app:dataBindingProcessLayoutsD

在本文中,您将会了解到关于Android中使用databinding编译时出现的error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'的新资讯,并给出一些关于AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...、Android Error:Execution failed for task '':app:compileDebugJavaWithJavac'' 解决方案 总结、Android Error:Execution failed for task '':app:preDebugAndroidTestBuild''. > Conflict wi...、Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?的实用技巧。

本文目录一览:

Android中使用databinding编译时出现的error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'

Android中使用databinding编译时出现的error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'

Windows环境下使用svn对AndroidStudio更新代码时,总会在源文件中出现一堆乱码,尤其是xml文件中的乱码,不仅找起来费劲,改起来更费劲。

最近从svn更新代码之后,编译时出现了下面这个提示,而且AS中没有错误提示,这可真是捉急了。

databinding error:Execution Failed for task '':app:dataBindingProcessLayoutsDebug''

后来,多亏这篇帖子提示,自己写了段代码来尝试下,http://stackoverflow.com/questions/35097445/android-databinding-errorexecution-Failed-for-task-appdatabindingprocesslayo!

果然找到问题了,那么多xml文件,就一个文件头多了一个0xfeff,最终还是找到了那个文件并修改了。下面上一段文件搜索代码,这个解决代码很简单,应该都不是难事吧。

 

 1  public static void main(String[] args){
 2         String path="E:\\svn\\ZonetryPlatform\\app\\src\\main\\res\\layout";
 3         File file=new File(path);
 4         String[] list = file.list();
 5         int length = list.length;
 6         System.out.println("file.size="+length);
 7         for (int i = 0; i < length; i++) {
 8             String onePath = list[i];
 9             File oneFile=  File(path,onePath);
10             FileInputStream fis=null11             FileReader fr=12             char[] b=new char[1];
13             try {
14 //                System.out.print("寻找当前文件="+onePath);
15                 fr= FileReader(oneFile);
16                 fr.read(b,1);
17                 System.out.println("the first c of the file = "+b[0]);
18                 if (b[0]==0xfeff){
19                     System.out.println("=========================当前文件出现异常字符, file="+onePath);
20                 }
21             } catch (FileNotFoundException e) {
22                 e.printstacktrace();
23             }  (IOException e) {
24 25             }finally26                 if (fis!=27                     28                         fis.close();
29                     } 30                         e.printstacktrace();
31                     }
32 33             }
34             System.out.println("the first c of the file = "+b[0]);
35             36 
37 38         }
39     }

 

总结

以上是小编为你收集整理的Android中使用databinding编译时出现的error:Execution failed for task '':app:dataBindingProcessLayoutsDebug''全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://www.cnblogs.com/BobGo

AbstractMethodError: abstract method

AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...

混淆导致的数据绑定库错误

问题摘要

AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databinding.DataBinderMapper.getDataBinder(androidx.databinding.DataBindingComponent, android.view.View, int)"

堆栈如下:

java.lang.AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databinding.DataBinderMapper.getDataBinder(androidx.databinding.DataBindingComponent, android.view.View, int)"
        at androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
        at androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
        at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:130)
        at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:95)
        at cn.sintoon.common.adapter.SinRecyclerViewBaseAdapter.onCreateViewHolder(Unknown Source:11)
        at cn.sintoon.common.adapter.SinRecyclerViewBaseAdapter.onCreateViewHolder(Unknown Source:0)
        at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
        at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3336)
        at android.view.View.measure(View.java:23454)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23454)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
        at android.view.View.measure(View.java:23454)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
        at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:403)
        at android.view.View.measure(View.java:23454)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at android.view.View.measure(View.java:23454)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1565)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:726)
        at android.view.View.measure(View.java:23454)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at com.android.internal.policy.DecorView.onMeasure(DecorView.java:847)
        at android.view.View.measure(View.java:23454)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2954)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1753)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2041)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1636)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7946)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1092)
        at android.view.Choreographer.doCallbacks(Choreographer.java:893)
        at android.view.Choreographer.doFrame(Choreographer.java:812)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1078)
        at android.os.Handler.handleCallback(Handler.java:907)

出现场景

封装了一个类库,向外提供一个封装好的 RecyclerAdapter,使用 DataBinding 。生成类库时开启了混淆,在使用时,抛出异常。

问题原因

androidx.databinding.DataBindingComponent 混淆掉了。

如何修复

修改混淆规则。不混淆这个类。

-keep class androidx.databinding.DataBindingComponent {*;}

排查过程

根据错误堆栈看,是找不到这个方法,初步怀疑就是被混淆掉了方法,然后直接使用不混淆的测试,的确没有异常了。确认是混淆的问题。

然后在 /build/outputs/mapping/ 目录下查看 mapping.txt 文件,发现果然是将这类混淆掉了。

# compiler: R8
# compiler_version: 1.4.77
# min_api: 1
androidx.databinding.DataBindingComponent -> a.a.a:

mapping.txt 这个文件提供混淆前后类、方法、类成员等的对照表。

总结

在基础类库中使用了数据绑定库要配置混淆规则。

参考 Proguard 混淆规则

Android Error:Execution failed for task '':app:compileDebugJavaWithJavac'' 解决方案 总结

Android Error:Execution failed for task '':app:compileDebugJavaWithJavac'' 解决方案 总结

1、升级更新buildToolsVersion 到最新版本
2、升级Android Studio 2.2.2版本,JDK 1.8版本
3、配置JAVA_HOME路径

然并卵没有解决我个人的问题

 

gradlew compileDebug --stacktrace 可以用于查看堆栈的错误信息,然后再去网上继续找寻错误信息。

把命令gradlew compileDebug --stacktrace 改成 gradlew compileDebugJavaWithJavac

居然把具体的错误信息打印出来了

然后更改,解决问题

像我遇到的问题是,刷新的时候都没有问题,运行的时候就出现我们标题的问题,然而解决了几次这样错误以后,发现一般来说只有manefest的权限重复这种类型错误,不打印错误信息出来,是看不到真正的错误的。gradle和studio升级版本越来越高以后,对权限要求都不能重复了,感觉算不算坑,有点追求完美?以前版本是可以兼容,内部应该帮你合并了的。

 

环境:studio3.0.1  gradle 4.1版本

Android Error:Execution failed for task '':app:preDebugAndroidTestBuild''. > Conflict wi...

Android Error:Execution failed for task '':app:preDebugAndroidTestBuild''. > Conflict wi...

错误内容:

Error:Execution failed for task '':app:preDebugAndroidTestBuild''.
> Conflict with dependency ''com.android.support:support-annotations'' in project '':app''. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

 

我们寻找External Libraries中的27.1.1版本,删掉就行了

最后在build.gradle中添加如下代码

androidTestCompile(''com.android.support:support-annotations:26.1.0'') {
        force = true
    }

 

Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?

Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?

高春辉、王春生、朱峰:关于开源创业的 15 件小事

Remove jackOption from defaultConfig in build.gradle

Add following lines in Application gradle

dependencies {

classpath ''com.android.tools.build:gradle:2.3.1''

classpath ''me.tatarka:gradle-retrolambda:3.2.3''

}

And add following line in build.gradle as below:

apply plugin: ''me.tatarka.retrolambda''

Hope this will help.

今天关于Android中使用databinding编译时出现的error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'的讲解已经结束,谢谢您的阅读,如果想了解更多关于AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...、Android Error:Execution failed for task '':app:compileDebugJavaWithJavac'' 解决方案 总结、Android Error:Execution failed for task '':app:preDebugAndroidTestBuild''. > Conflict wi...、Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?的相关知识,请在本站搜索。

本文标签: