ireaderandroid / x2c Goto Github PK
View Code? Open in Web Editor NEWIncrease layout loading speed 200%
Home Page: https://www.jianshu.com/p/c1b9ce20ceb3
Increase layout loading speed 200%
Home Page: https://www.jianshu.com/p/c1b9ce20ceb3
针对这个问题,是不是可以在X2C_config.xml 中添加一个配置项来解决呢?如果可以的话我可以改一下之后发PR。
我在两个方法添加了注解,编译发现只生成了一个
经测试,布局有fragment的,都编译错误了
如题
如题。自定义的title bar,里面用的这个,能支持吗?
java.io.FileNotFoundException: E:\androidLearn\BirthdayNote\testmodule\build\intermediates\manifests\full\debug\AndroidManifest.xml
使用 classpath 'com.android.tools.build:gradle:3.2.1' 的时候APT生成的IViewCreator只会是X2C0_Activity_Main,导致运行期间找不到正确的IViewCreator而回退到原生方案。
使用 classpath 'com.android.tools.build:gradle:3.1.4'则正常。
System.err: java.lang.ClassNotFoundException: Didn't find class "com.zhangyue.we.x2c.X2C127_item_video_chat_user_list_view" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.naoxxxedu-27t-4RPaqe09Bg1mbSXf7w==/base.apk"]
public class X2C127_Include_Tips_None_Content_Layout implements IViewCreator {
@Override
public View createView(Context ctx) {
Resources res = ctx.getResources();
RelativeLayout relativeLayout0 = new RelativeLayout(ctx);
relativeLayout0.setId(R.id.tips_none_content_layout);
layoutParam0.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE);
relativeLayout0.setVisibility(View.GONE);
...
}
include 的 RelativeLayout 找不到 layoutParam0 的定义
注解的layout id需为常量,子工程layout id不是常量,这个怎么用
AGP: 4.0.0
AS: 4.0
distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip
联系群不能用了吗?
rt
如 @drawable/xxx.xml 那么自定义xml里面应该怎么写
还有一些第三方控件的true | false是自己判断的,这时候X2C的自定义属性就没用了,所以是否可以再实现一个获取属性值然后再进行自己的判断什么的
为了做屏幕适配,可能会用到autosize库,implementation 'me.jessyan:autosize:1.1.2',为了不与第三方库冲突,一般使用副单位如:mm,这时生成代码失败
xml布局里一个TextView 的 android:background="@null" ,设置成了null 报错 提示:
错误: -source 1.7 中不支持类型注释
(请使用 -source 8 或更高版本以启用类型注释)
比如我想通过这个工具实现一些没有的属性进行替换,但是直接改源码的话以后每次X2C更新就很麻烦了
对于ConstraintLayout.LayoutParams老是去生成它的gravity属性
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="175dp"
>
<android.support.constraint.Guideline
android:id="@+id/guide_line"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"
/>
...
ConstraintLayout.LayoutParams
里是有这个属性的,没有这个运行会报错
现在是根据 build.gradle applicationId 来寻找 R.java 文件
有些 app 是多版本的, applicationId 就不是固定的,会导致找不到 R.java 文件
如果获取的是 AndroidManifest.xml 的包名或许更好
您好,我在app demo的基础上修改了 layout 下面的 activity_main_inter.xml 文件,把它替换成一个比较复杂的 XML 文件进行测试;在 ActivityX2C 文件的 X2C.setContentView 前后打印时间,并在 ActivityXML 文件的 setContentView 前后打印时间,然后比较两个时间,发现 X2C 方式的时间反而比 XML 方式的时间要多。我是在Android Studio debug模式下测试的。
请问您能分享一下你们测试X2C性能的Case 或者测试方法,感谢~~
如题,我想直接得到java代码
或者butterknife
关于除第三方控件之外的常用组件进行属性翻译为java的必要勘误。
/**
* X2C在TextView中的BUG
* TextView的setTypeface方法在仅斜体且字体不设置的情况下,形参不对,必须得至少传入一个Typeface
* fix: .setTypeface(Typeface.DEFAULT,Typeface.ITALIC);
*/
TextView textView = new TextView(getContext());
textView.setTypeface(Typeface.ITALIC);
/**
* X2C在CoordinatorLayout中的BUG
* CoordinatorLayout不能当LinearLayout处理,CoordinatorLayout没有.setOrientation()方法
* fix:可不做处理
*/
CoordinatorLayout coordinatorLayout = new CoordinatorLayout(getContext());
coordinatorLayout.setOrientation(LinearLayout.VERTICAL);
/**
* X2C在CoordinatorLayout.LayoutParams中的BUG
* CoordinatorLayout.LayoutParams没有addRule()方法
*/
CoordinatorLayout.LayoutParams layoutParam = new CoordinatorLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
layoutParam.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,RelativeLayout.TRUE);
/**
* FloatingActionMenu.LayoutParams第三方控件的LayoutParams设置方式各不相同
*/
FloatingActionMenu.LayoutParams layoutParam1 = new FloatingActionMenu.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParam1.gravity= Gravity.BOTTOM|Gravity.END ;
/**
* X2C在ProgressBar中的BUG
* ProgressBar没有setMaxWidth()和setMaxHeight()方法
*/
ProgressBar progressBar = new ProgressBar(getContext());
progressBar.setMaxWidth((int)(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,32,res.getDisplayMetrics())));
progressBar.setMaxHeight((int)(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,32,res.getDisplayMetrics())));
自定义属性必须配置 X2C_CONFIG 吗? 能自动兼容吗?如果自定义view 属性过多,也是很麻烦的一件事啊
its like of mine project :
https://github.com/FabianTerhorst/FastLayout
如果一个xml布局文件有几百行,那换句话说,是不是有可以解耦的,或者是不是有可以替代的控件,到现在做了很多项目,布局最多的也就200-300行,这个还是类似设置里面写死的布局,其他布局都没有超过200行的,这个并不是一个好的解决办法
只能导入lib库依赖吗
不支持xml中的屏幕常亮配置
android:keepScreenOn="true"
如题 , 错误: 不兼容的类型: MyFragment无法转换为Fragment
另外,请问@xml注解是否必须修饰继承于Fragment或者Activity的类?wiki似乎解释的不太清楚
报错log很长,看这一段应该就可以了:
Caused by: java.lang.NullPointerException
at com.zhangyue.we.anoprocesser.xml.LayoutManager.getRFile(LayoutManager.java:227)
at com.zhangyue.we.anoprocesser.xml.LayoutManager.getR(LayoutManager.java:189)
at com.zhangyue.we.anoprocesser.xml.LayoutManager.setFiler(LayoutManager.java:73)
at com.zhangyue.we.anoprocesser.XmlProcessor.init(XmlProcessor.java:34)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.(JavacProcessingEnvironment.java:500)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
... 126 more
LayoutManager
private void getLayoutPath() {
try {
JavaFileObject fileObject = mFiler.createSourceFile("bb");
String path = fileObject.toUri().toString();
String preFix = "file:/";
if (path.startsWith(preFix)) {
path = path.substring(preFix.length() - 1);
}
File file = new File(path);
while (!file.getName().equals("build")) {
file = file.getParentFile();
}
mRootFile = file.getParentFile();
String sep = File.separator;
mLayoutFile = new File(mRootFile.getAbsolutePath() + sep + "src" + sep + "main" + sep + "res" + sep + "layout");
} catch (Exception e) {
e.printStackTrace();
}
}
res完全写死了,如果布局不是在res就没办法生成对应文件。
原生对应的属性是 android.view.View#setMinimumHeight()
不能直接 set+属性名称 反射
Caused by: java.lang.NullPointerException
at com.zhangyue.we.anoprocesser.xml.LayoutMgr.getRFile(LayoutMgr.java:206)
at com.zhangyue.we.anoprocesser.xml.LayoutMgr.getR(LayoutMgr.java:170)
at com.zhangyue.we.anoprocesser.xml.LayoutMgr.setFiler(LayoutMgr.java:55)
at com.zhangyue.we.anoprocesser.XmlProcesser.init(XmlProcesser.java:35)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.(JavacProcessingEnvironment.java:500)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1039)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1180)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
e: [kapt] An exception occurred: java.lang.NoSuchMethodError: com.squareup.javapoet.ClassName.reflectionName()Ljava/lang/String;
at com.airbnb.epoxy.EpoxyProcessor.getSupportedAnnotationTypes(EpoxyProcessor.java:152)
at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.getSupportedAnnotationTypes(annotationProcessing.kt)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:505)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1039)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1180)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:55)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:27)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:216)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:164)
at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:93)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:98)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:108)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:85)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:370)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:61)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:361)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:126)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:154)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:51)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:95)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:50)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:88)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:405)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:98)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:927)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98)
at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:957)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:926)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:404)
at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
也许我没注意看清楚,好像不支持AndroidX,使用了的转java都失败了
Task :demo_module:compileDebugJavaWithJavac FAILED
Gradle may disable incremental compilation as the following annotation processors are not incremental: butterknife-compiler-10.1.0.jar (com.jakewharton:butterknife-compiler:10.1.0), dagger-compiler-2.15.jar (com.google.dagger:dagger-compiler:2.15), jetified-arouter-compiler-1.1.4.jar (com.alibaba:arouter-compiler:1.1.4), x2c-apt-1.1.2.jar (com.zhangyue.we:x2c-apt:1.1.2), jetified-auto-service-1.0-rc2.jar (com.google.auto.service:auto-service:1.0-rc2).
Consider setting the experimental feature flag android.enableSeparateAnnotationProcessing=true in the gradle.properties file to run annotation processing in a separate task and make compilation incremental.
java.io.FileNotFoundException: /Users/lanshifu/Documents/android_work_space/BaseLibrary_Master/demo_module/build/intermediates/manifests/full/debug/AndroidManifest.xml (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:328)
at com.zhangyue.we.anoprocesser.xml.LayoutManager.findPackageName(LayoutManager.java:235)
at com.zhangyue.we.anoprocesser.xml.LayoutManager.setFiler(LayoutManager.java:87)
at com.zhangyue.we.anoprocesser.XmlProcessor.init(XmlProcessor.java:34)
at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.init(DelegatingProcessor.java:57)
at org.gradle.api.internal.tasks.compile.processing.NonIncrementalProcessor.init(NonIncrementalProcessor.java:33)
at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.init(DelegatingProcessor.java:57)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.access$301(TimeTrackingProcessor.java:37)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor$4.create(TimeTrackingProcessor.java:88)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor$4.create(TimeTrackingProcessor.java:85)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.track(TimeTrackingProcessor.java:117)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.init(TimeTrackingProcessor.java:85)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.(JavacProcessingEnvironment.java:500)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:91)
at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:100)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)
at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:51)
at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:37)
at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:39)
at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:27)
at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$2.call(CompileJavaBuildOperationReportingCompiler.java:59)
at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$2.call(CompileJavaBuildOperationReportingCompiler.java:51)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:51)
at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:154)
at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:139)
at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:111)
at com.android.build.gradle.tasks.AndroidJavaCompile.compile(AndroidJavaCompile.kt:233)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
at java.util.Optional.orElseGet(Optional.java:267)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:79)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
注: ARouter::Compiler >>> AutowiredProcessor init. <<<
警告: 来自注释处理程序 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' 的受支持 source 版本 'RELEASE_7' 低于 -source '1.8'
注: ARouter::Compiler >>> Found autowired field, start... <<<
注: ARouter::Compiler categories finished.
注: ARouter::Compiler >>> Start process 4 field in DemoMainActivity ... <<<
注: ARouter::Compiler >>> DemoMainActivity has been processed, DemoMainActivity$$ARouter$$Autowired has been generated. <<<
注: ARouter::Compiler >>> Autowired processor stop. <<<
注: ARouter::Compiler The user has configuration the module name, it was [demo_module]
注: ARouter::Compiler >>> InterceptorProcessor init. <<<
警告: 来自注释处理程序 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' 的受支持 source 版本 'RELEASE_7' 低于 -source '1.8'
注: ARouter::Compiler The user has configuration the module name, it was [demo_module]
注: ARouter::Compiler >>> RouteProcessor init. <<<
警告: 来自注释处理程序 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' 的受支持 source 版本 'RELEASE_7' 低于 -source '1.8'
注: ARouter::Compiler >>> Found routes, start... <<<
注: ARouter::Compiler >>> Found routes, size is 2 <<<
注: ARouter::Compiler >>> Found activity route: com.lanshifu.demo_module.ui.activity.DemoMainActivity <<<
注: ARouter::Compiler >>> Start categories, group = demo, path = /demo/DemoMainActivity <<<
注: ARouter::Compiler >>> Found provider route: com.lanshifu.demo_module.service.DemoServiceImpl <<<
注: ARouter::Compiler >>> Start categories, group = demo, path = /demo/service/DemoInfoService <<<
注: ARouter::Compiler >>> Generated group: demo<<<
注: ARouter::Compiler >>> Generated provider map, name is ARouter$$Providers$$demo_module <<<
注: ARouter::Compiler >>> Generated root, name is ARouter$$Root$$demo_module <<<
发现转成java后并没有setTag,请问可以修复吗
merge和系统style一般大家都在用; 你们在使用的过程中是怎么规避这两个不适用的?
这种解析不了
项目外部的大文件夹为 Android Project ,中间有个空格。Android%20Project
测试发现:
如果对gradle版本进行提升的话,比如我提升到3.2.1以及以上,目前最高已到3.6.1版本,会出现文件生成出错的问题,表现的结果就是groupid = 0,而不是127.最终会导致无法使用
如果我把版本再降回3.1.4的话,是能正常使用的,不过为了使用这就就必须要降版本,是否考虑兼容升级一下?
正确的应该是import android.view.SurfaceView; X2C编译出的是import android.widget.SurfaceView;
@chengweidev 最新提交的代码中删除了我提交的部分,替代的代码回溯到了老的代码逻辑,填充默认构造器的方式浪费资源没什么必要,
IViewCreator creator = null;
//此次已经判断了是否构造过,不会多次构造
if (sSparseArray.indexOfKey(layoutId) >= 0) {
creator = sSparseArray.get(layoutId);
} else {
try {
creator = (IViewCreator) context.getClassLoader()
.loadClass("com.zhangyue.we.x2c.X2C_" + layoutId).newInstance();
} catch (Exception ignored) {//
}
//SparseArray的value可以为null
sSparseArray.put(layoutId, creator);
}
return creator == null ? null : creator.createView(context, layoutId);
}
另外generateGroupId本意是缩短类名长度,但通过位运算后可能导致ID重复,所以并有没必要。
这个库实在是很有想法,为作者点赞!依赖工程不是很方便,提供Jcenter接入就更好了,另外该方案请问有上线使用了吗,有没有遇到什么问题
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.