alibaba / freeline

A super fast build tool for Android, an alternative to Instant Run
https://www.freelinebuild.com/
BSD 3-Clause "New" or "Revised" License
5.48k stars 623 forks source link

全量编译可以过,增量编译就不行,也是很多类找不到 #120

Closed shuifengYu closed 8 years ago

shuifengYu commented 8 years ago

jar_dependencies.json文件存在,而且有内容,试过gradlew assembleDebug -PfreelineBuild=true,也是没用,还有就是lambda语法还是不支持吗

-----------------------
[INFO] preparing for tasks...
[-][connect_device_task] finished. in 0.1s
[-][gradle_aapt_task] finished. in 0.0s
[-][mupdf] finished. in 0.0s
[-][nimuikit] finished. in 0.0s
[-][materialpickers] finished. in 0.0s
[-][expandablerecyclerview] finished. in 0.0s
[-][tool] failed. in 1.0s
[-][merge_dex_task] failed. in 0s
[-][gradle_sync_task] failed. in 0s
[-][clean_cache_task] failed. in 0s
[-][update_stat_task] failed. in 0s
[ERROR] --------------------------------------------------------
[ERROR] Freeline ERROR
[ERROR] --------------------------------------------------------

警告: [options] 未与 -source 1.7 一起设置引导类路径
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:9: 错误: 程序包android.support.v4.view不存在
import android.support.v4.view.ViewPager;
                              ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:33: 错误: 程序包com.alexvasilkov.gestures不存在
import com.alexvasilkov.gestures.GestureController;
                                ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:34: 错误: 程序包com.alexvasilkov.gestures.views不存在
import com.alexvasilkov.gestures.views.GestureFrameLayout;
                                      ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:38: 错误: 程序包de.greenrobot.event不存在
import de.greenrobot.event.EventBus;
                          ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:44: 错误: 无法访问Fragment
public class PageFragmentTeach extends TeachBaseFragment {
       ^
  找不到android.support.v4.app.Fragment的类文件
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:69: 错误: 找不到符号
    private GestureFrameLayout zoomFrameLayout;
            ^
  符号:   类 GestureFrameLayout
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:78: 错误: 找不到符号
    ViewPager vp;
    ^
  符号:   类 ViewPager
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:596: 错误: 找不到符号
        ViewPager getViewPager();
        ^
  符号:   类 ViewPager
  位置: 接口 ActivityHasViewPager
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:81: 错误: 找不到符号
        PageFragmentTeach fragment = new PageFragmentTeach();
                                     ^
  符号:   构造器 PageFragmentTeach()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:87: 错误: 找不到符号
        fragment.setArguments(bundle);
                ^
  符号:   方法 setArguments(Bundle)
  位置: 类型为PageFragmentTeach的变量 fragment
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:91: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:97: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:99: 错误: 找不到符号
        super.onViewCreated(view, savedInstanceState);
        ^
  符号:   变量 super
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:101: 错误: 找不到符号
        Bundle state = getArguments();
                       ^
  符号:   方法 getArguments()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:107: 错误: 找不到符号
        zoomFrameLayout = $(R.id.zoomFrameLayout);
                          ^
  符号:   方法 $(int)
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:109: 错误: 找不到符号
        if (getActivity() instanceof ActivityHasViewPager) {
            ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:110: 错误: 找不到符号
            vp = ((ActivityHasViewPager) getActivity()).getViewPager();
                                         ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:117: 错误: 程序包GestureController不存在
        zoomFrameLayout.getController().setOnGesturesListener(new GestureController.SimpleOnGestureListener() {
                                                                                   ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:124: 错误: 找不到符号
        imageView = $(R.id.pagefragment_imageView);
                    ^
  符号:   方法 $(int)
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:125: 错误: 找不到符号
        whiteboardView = $(R.id.pagefragment_whiteboard);
                         ^
  符号:   方法 $(int)
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:126: 错误: 找不到符号
        drawLineView = $(R.id.pagefragment_drawlineview);
                       ^
  符号:   方法 $(int)
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:131: 错误: 找不到符号
                ((TeachingActivityFT) getActivity()).sendDrawLineMessage(ptArray);
                                      ^
  符号: 方法 getActivity()
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:131: 错误: 无法访问AppCompatActivity
                ((TeachingActivityFT) getActivity()).sendDrawLineMessage(ptArray);
                                                    ^
  找不到android.support.v7.app.AppCompatActivity的类文件
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:132: 错误: 找不到符号
                ((TeachingActivityFT) getActivity()).closeDrawLineMode();
                                      ^
  符号: 方法 getActivity()
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:143: 错误: 找不到符号
        if (getActivity() instanceof OnPageClickListener) {
            ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:144: 错误: 找不到符号
            onPageClickListener = (OnPageClickListener) getActivity();
                                                        ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:147: 错误: 找不到符号
        if (getActivity() instanceof OnPageOnUsingTouchEventListener) {
            ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:148: 错误: 找不到符号
            onPageOnUsingTouchEventListener = (OnPageOnUsingTouchEventListener) getActivity();
                                                                                ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:152: 错误: 找不到符号
            pdfHelper = PDFHelperManager.get(getActivity(), file);
                                             ^
  符号:   方法 getActivity()
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/build/intermediates/classes/debug/com/abc360/teach/protocol/Message/WhiteboardDrawlineNew$Data.class: 警告: 无法找到类型 'SerializedName' 的注释方法 'value()': 找不到com.google.gson.annotations.SerializedName的类文件
/Users/coder_yu/workspace/platform/tool/build/intermediates/classes/debug/com/abc360/teach/protocol/Message/WhiteboardDrawlineNew$Data.class: 警告: 无法找到类型 'SerializedName' 的注释方法 'value()'
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:269: 错误: 找不到符号
                    EventBus.getDefault().post(new EventEraserLines(pageNumber));//将自己画的图层上的线也要清楚
                    ^
  符号:   变量 EventBus
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:305: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:346: 错误: 找不到符号
        super.onDestroy();
        ^
  符号:   变量 super
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:433: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:435: 错误: 找不到符号
        super.onResume();
        ^
  符号:   变量 super
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:525: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:527: 错误: 找不到符号
        super.setUserVisibleHint(isVisibleToUser);
        ^
  符号:   变量 super
  位置: 类 PageFragmentTeach
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:571: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/Users/coder_yu/workspace/platform/tool/src/main/java/com/abc360/teach/widget/BookPage/PageFragmentTeach.java:573: 错误: 找不到符号
        super.onPause();
        ^
  符号:   变量 super
  位置: 类 PageFragmentTeach
38 个错误
3 个警告

[ERROR] --------------------------------------------------------
[ERROR] incremental javac compile failed.
[ERROR] --------------------------------------------------------
[DEBUG] Prepare tasks time: 0.2s
[DEBUG] Task engine running time: 1.0s
[DEBUG] Total time: 1.2s
[DEBUG] --------------------------------------------------------
lomanyong commented 8 years ago

@shuifengYu 恩,目前lambda还不支持。这些找不到的类,是否在jar_dependencies.json里定义的jar列表中呢?

shuifengYu commented 8 years ago

jar_dependencies.json中只有 [ "/Users/coder_yu/Library/Android/sdk/platforms/android-23/optional/org.apache.http.legacy.jar" ]

lomanyong commented 8 years ago

@shuifengYu 麻烦执行一下 gradlew assembleDebug -PfreelineBuild=true然后把输出的日志看下?

shuifengYu commented 8 years ago

log.txt 日志有点长,传文件了

lomanyong commented 8 years ago

@shuifengYu 看了下日志,应该跟你们的build.gradle的配置有关。

以上这三个task同时存在。

你们minSdkVersion跟multiDex以及dexOptions的配置是怎样的可以发一下吗?

shuifengYu commented 8 years ago
 dexOptions {
        jumboMode = true
        javaMaxHeapSize "4g"
    }

 minSdkVersion 15
targetSdkVersion 22

 release {
            multiDexEnabled true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.release
        }

debug {
            multiDexEnabled true
            signingConfig signingConfigs.release
}
lomanyong commented 8 years ago

@shuifengYu 使用的freeline版本是0.6.2吗?

classpath 'com.android.tools.build:gradle:2.2.0-rc1'这个的版本是多少呢?

shuifengYu commented 8 years ago

0.6.1的这个是

lomanyong commented 8 years ago

@shuifengYu 升级到0.6.2或者在defaultConfig里配置multiDexEnabled true呢,然后重试下呢?

shuifengYu commented 8 years ago

在defaultConfig 里配置multiDexEnabled true果然可以过了,不过为什么放在 buildTypes{
debug { multiDexEnabled true signingConfig signingConfigs.release } } 就不行了呢,能稍微指教下吗

lomanyong commented 8 years ago

@shuifengYu 应该还是代码逻辑判断的地方还有遗漏,这个应该是我们的问题,需要gradle插件这边来解决一下~

shuifengYu commented 8 years ago

好的好的,十分感谢,体验了下速度非常快,有点难以置信,接下去有问题再来麻烦你们,哈哈

lomanyong commented 8 years ago

@shuifengYu 好的,有问题都可以给我们提issue