Comments (35)
@viplwj 想问下是项目中使用了lambda之类的高版本api吗?freeline暂时不支持lambda的..
from freeline.
应该是没有用的,使用Python freeline -f全量编译后,全量编译时ok的,修改文件无论修改哪个都是报 error: cannot find symbol,我是不是需要用低版本的jdk进行编译
from freeline.
@viplwj 可以看一下${main_module}/build/freeline/jar_dependencies.json
这个文件是否存在,然后里面的内容是否是空的?
from freeline.
from freeline.
@viplwj 缺少了jar_dependencies.json
这个文件,编译流程出了点状况...麻烦在命令行单独执行一下./gradlew assembleDebug
,然后发下日志ok吗?需要看下task栈中哪里出了问题..
from freeline.
用 ./gradlew assembleDebug 跑了一遍是ok的 可以正常编译过去,是要把所有的log都贴出来?
from freeline.
@viplwj 嗯,是的,需要所有的log
from freeline.
@viplwj 有配置Freeline的 DSL吗?比如说把hack true加上
from freeline.
同样有这个问题,dsl中配了hack和productFlavor
from freeline.
@gaoxuxu 有相关的日志提供吗?
from freeline.
@lomanyong 我执行了一下./gradlew assembleDebug --stacktrace,异常栈如下
Caused by: java.lang.NullPointerException
at org.gradle.api.internal.tasks.compile.incremental.jar.JarSnapshot.getHashes(JarSnapshot.java:82)
at org.gradle.api.internal.tasks.compile.incremental.jar.JarSnapshot.affectedSince(JarSnapshot.java:54)
at org.gradle.api.internal.tasks.compile.incremental.jar.JarSnapshot.getAffectedClassesSince(JarSnapshot.java:47)
at org.gradle.api.internal.tasks.compile.incremental.jar.JarChangeDependentsFinder.getActualDependents(JarChangeDependentsFinder.java:65)
at org.gradle.api.internal.tasks.compile.incremental.jar.JarChangeProcessor.processChange(JarChangeProcessor.java:39)
at org.gradle.api.internal.tasks.compile.incremental.RecompilationSpecProvider$InputChangeAction.execute(RecompilationSpecProvider.java:81)
at org.gradle.api.internal.tasks.compile.incremental.RecompilationSpecProvider$InputChangeAction.execute(RecompilationSpecProvider.java:58)
at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs.doOutOfDate(ChangesOnlyIncrementalTaskInputs.java:48)
at org.gradle.api.internal.changedetection.changes.StatefulIncrementalTaskInputs.outOfDate(StatefulIncrementalTaskInputs.java:46)
at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs.outOfDate(ChangesOnlyIncrementalTaskInputs.java:28)
at org.gradle.api.internal.tasks.compile.incremental.RecompilationSpecProvider.provideRecompilationSpec(RecompilationSpecProvider.java:49)
at org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:54)
at org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:31)
at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilationFinalizer.execute(IncrementalCompilationFinalizer.java:39)
at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilationFinalizer.execute(IncrementalCompilationFinalizer.java:24)
at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:163)
at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:127)
at com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:49)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 68 more
from freeline.
@gaoxuxu 有完整地执行./gradlew assembleDebug
的日志呢?
from freeline.
@lomanyong 我的Gradle插件版本使用的是2.1.3,改成2.0.0后assembleDebug执行成功了
from freeline.
@gaoxuxu style/ActivityPushAnimation
这个资源定义在哪个module的哪个文件夹里的呢?然后这个文件夹是否包含在~/.freeline/cache/xxxxx/project_description.json
的project_source_sets
下的module的path中?
这里可以检查一下
from freeline.
@charvenhe dsl加了
from freeline.
@viplwj 可以贴下./gradlew assembleDebug
的相关日志吗?
from freeline.
@lomanyong 我把gradle的版本换了换倒是可以生成那个jar_dependencies.json,但是刚才又测试了一下出现了下面的问题
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:730)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:699)
at com.android.dx.command.dexer.Main.access$300(Main.java:86)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:628)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:658)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:536)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:307)
at com.android.dx.command.dexer.Main.run(Main.java:266)
at com.android.dx.command.dexer.Main.run(Main.java:236)
at com.android.dx.command.dexer.Main.main(Main.java:218)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing com/test/R$anim.class
from freeline.
@viplwj 你们有制定的productFlavor吧?如果有的话,应该要执行./gradlew assemble${your-Flavor}Debug
,同时,freeline DSL里也要配置productFlavor
..
from freeline.
@viplwj 如果可以生成jar_dependencies.json
的话,里面有内容吗?以及是否可以正常使用了呢?
from freeline.
ok,谢谢你这么及时的回复,待会儿再试试,现在比较忙,生成的jar_dependencies.json这个文件是有内容的,里面的引用都是正确的,
from freeline.
@lomanyong 我那个问题是由于xml文件中,在标签外部有一些字符,freeline在解析时不兼容导致,删了就好了
from freeline.
还是报UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:730)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:699)
at com.android.dx.command.dexer.Main.access$300(Main.java:86)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:628)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:658)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:536)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:307)
at com.android.dx.command.dexer.Main.run(Main.java:266)
at com.android.dx.command.dexer.Main.run(Main.java:236)
at com.android.dx.command.dexer.Main.main(Main.java:218)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing com/test/R$anim.class
from freeline.
@viplwj http://stackoverflow.com/questions/24662801/bad-class-file-magic-or-version 看看有没有什么帮助
from freeline.
@gaoxuxu 这个应该是freeline导致的哈
@viplwj 可以clean一下,然后用python freeline.py -f
,看下是否还会报错吗?
from freeline.
@gaoxuxu,你那边增量编译通过了吗?代码和资源都试过吗?速度跟之前对比怎么样,能发下数据么
from freeline.
@charvenhe 具体数据我还没试,我没做任何修改试了一下,全量是200s,没有修改跑一下是20s。
我的Android Studio版本是2.2,gradle插件必须用2.1.3,我还在想办法,有数据了再回你
from freeline.
@gaoxuxu,好的,增量时候建议可以在5.x的机器上试试,多试几次资源,代码,看看分别大概多久
from freeline.
开始是因为gradle版本的问题,但是后来搞定了,现在环境有点问题,我再试试,感觉应该是可以了
from freeline.
@gaoxuxu 2.1.3的问题可以加入我们的官方微信群进行细节反馈
from freeline.
搞定了,首先是gradle版本的问题,其次是因为混淆还有昨天改了.py中java版本导致最后一些奇怪的问题,谢谢大家及时反馈啊
from freeline.
@viplwj 恩,freeline不支持在debug时开启混淆的。gradle在高版本上的兼容性问题,我今天再看一下~
from freeline.
@viplwj @lomanyong @charvenhe 2.1.3的问题可以用下面的方法解决,添加:
dexOptions {
preDexLibraries true
incremental false
}
from freeline.
@gaoxuxu 恩,记录一下 :https://code.google.com/p/android/issues/detail?id=212359
from freeline.
from freeline.
@viplwj @gaoxuxu 你们是什么项目呀,增量与之前你们日常打包对比的数据方便发下我们记录下么,分别是代码和资源,多增量几次看看时间怎么样
from freeline.
Related Issues (20)
- 我是先安装python2.7.9,然后安装你们github上的教程仔细来,然后点击android studio 上的freeline按钮,没反应.最最重要的是我用命令来执行python freeline.py多次还是和第一次执行的时间一样长,并且还没原始的run时间短?请教下怎么回事?
- WARNING: Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation' and 'testApi'. It will be removed at the end of 2018. HOT 1
- Freeline 最新代码拉下来出错,无法下载1.0.0版本
- Freeline在Android Studio里面,无法搜索到,windows HOT 2
- gradle_tools.py 运行异常
- 不支持 Kotlin,一年没更新,卒。 HOT 3
- 好好的项目就这么凉了 HOT 3
- Jar Conflict about butterknife
- freeline提示No module named 'build_commands'无法运行 HOT 1
- 本地编译源代码,提示错误。com.antfortune.freeline:gradle:0.8.9-SNAPSHOT找不到
- Site offline
- 这么好的插件 怎么就凉了 HOT 3
- 纪念一下
- 与viewBinding 冲突 HOT 2
- Custom task is not recognized by jenkins
- JavaPoet Version collision With ViewBinding
- cannot use freeline in Android Studio 4.1.2, how to adapt Android Studio 4.1.2? HOT 2
- On Mac M1 ,Newest AndroidStudio "Could not find com.antfortune.freeline:gradle:0.8.8" HOT 1
- abnormal link
- 希望能够提供一个样例项目,第一步就配置不过去
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from freeline.