A super fast build tool for Android, an alternative to Instant Run

Related tags

Tools freeline
Overview

Freeline

Freeline

Release Version BSD3 License PRs Welcome

Freeline is a super fast build tool for Android and an alternative to Instant Run. Caching reusable class files and resource indices, it enables incremental building Android apps, and optionally deploying the updates to your device by hot swap.

See Freeline official website for more information.

Developed and used by Ant Fortune (about us) Android Team, Freeline has been significantly saving time in daily work. Inspiring by Buck and Instant Run but faster than ever, Freeline can make an incremental build in just a few seconds. No more recompile and reinstall again and again before seeing your modifications, Freeline brings life-changing development experience for Android.

中文说明

Freeline Insights

Freeline splits the build task into several small tasks that run concurrently. It makes full use of the compiled cache files to implement a real incremental build and uses some components of Buck such as dx and DexMerger to speed up the build tasks. Freeline runs a socket server in a separate process on device side, which connects with build tool on developer's machine, so that deployment can still take effects even if the main process crashes.

Freeline uses multi-dex solution for incremental dex hot swapping. A deeply optimized version of aapt tool (FreelineAapt) is made to generate incremental resource pack, which is several times faster than the original aapt tool and the resouce pack can be as small as 1kb. MonkeyPatcher from Instant Run is utilized to make hot resource replacement. Freeline support dynamic swap native .so library, you don't need to re-build your project after native .so files changed.

Freeline will automatically switch between full build and incremental build.

Freeline is also a great basis for over-the-air hotpatching. Deliverying Freeline's incremental output, which can be packed into a zip file and usually less than 100 kb, it is able to take effect to fix crashes or other problems and replace resoucres dynamically. Statistical data over large amount cases show that it is effective for 99% of users. Please note that the OTA patch delivery system is out of scope of this project.

FreelineAapt will open source codes later. See wiki to know more about Freeline, only Chinese available now.

中文原理说明

Features

  • Speed up standard android gradle projects with multiple modules
  • Concurrent tasks that incrementally build project
  • Hot deploy even if the main process crashes
  • Build incremental dex and resource pack
  • Caching resource.arsc support
  • Running on Windows, Linux and Mac
  • Native so hot swap support
  • Annotation support
  • Retrolambda support
  • DataBinding support

See the following table for changes support.

Java drawable, layout, etc. res/values native so
add
change
remove x -

Freeline has been tested with API versions 17, 19, 22, 23 on the android emulators, a Nexus 6p running marshmallow and a smartisan running Kitkat. Incremental resource patch would be much faster if the android device is running Lolipop or above.

Download

Configure your project-level build.gradle to include freeline plugin:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:0.8.8'
    }
}

Then, apply the freeline plugin in your android application module's build.gradle:

apply plugin: 'com.antfortune.freeline'

android {
    ...
}

Finally, execute the gradle task initFreeline to download freeline dependencies.

  • Windows[CMD]: gradlew initFreeline
  • Linux/Mac: ./gradlew initFreeline

For Chinese users, if you got stuck in the download process, you can execute gradlew initFreeline -Pmirror to speed up the progress.

You can also use -PfreelineVersion={your-specific-version} parameter to download the specific version of freeline's python and bin dependencies.

If you have a complex project structure, you may need to use freeline DSL to customize your build process. For more details about freeline DSL, see Freeline DSL References.

Usage

You can install freeline plugin in Android Studio for quick usage.

How to install? In Android Studio, go to:

  • MacOS

Android Studio → Preferences... → Plugins → Browse repositories...

  • Windows and Linux

File → Settings... → Plugins → Browse repositories...

and search for freeline.

Just use the Run Freeline button and enjoy it.

The plugin will show you the latest update of Freeline, you can use this plugin to update Freeline.

Many thanks to @pengwei1024 and @act262 for creating such an awesome plugin.

Besides, you can also execute python script in the command line in the root dir of your project. See wiki for more details.

Sample Usage

git clone [email protected]:alibaba/freeline.git
cd freeline/sample
./gradlew initFreeline
python freeline.py

TODO

  • Compatibility Improvement
  • Multiple Devices Connection Support

Limitations

  • Sync incremental resource pack to the device first time may be a bit slow
  • Removing res/values is not supported, which may cause aapt exception
  • Incrementally build abstract class is not support
  • Not support Jack compile
  • Not support Kotlin/Groovy/Scala

Contributing

We are always very happy to have contributions, whether for trivial cleanups, big new features or other material rewards.

Troubleshooting

See wiki.

Thanks

License

BSD3 License

Comments
  • 执行python freeline.py 报错

    执行python freeline.py 报错

    这是控制台输入错误日志:

    check sync status failed, a clean build will be automatically executed. /freeline/freeline_core/task.py", line 123, in execute self.task.execute() /freeline/freeline_core/gradle_clean_build.py", line 69, in execute output, err, code = cexec(command.split(' '), callback=None) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in init errread, errwrite) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child raise child_exception OSError: [Errno 13] Permission denied

    [ERROR] -------------------------------------------------------- [ERROR] unexpected exception within task

    opened by aoldcat 37
  • [ERROR] incremental res build failed.

    [ERROR] incremental res build failed.

    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31226: error: Public symbol menu/menu_sheet_uc_share declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31228: error: Public symbol menu/menu_transmanager declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31230: error: Public symbol menu/menu_uc_lib_member declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31234: error: Public symbol menu/menu_uc_storage_point declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31236: error: Public symbol menu/ts_menu_main declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31238: error: Public symbol menu/ts_menu_task_detail declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31240: error: Public symbol menu/ts_tasklist_member declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31242: error: Public symbol menu/ts_tasklist_more declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31244: error: Public symbol menu/yk_menu_contact_lib_member_select declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31246: error: Public symbol menu/yk_menu_member_detail_modify declared here is not defined.
    /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:31248: error: Public symbol menu/yk_menu_picture_confirm declared here is not defined.
    
    

    改动xml文件之后,启动编译,报了很多类似的未定义, 没有完全贴出来。 是实现不了资源的增量编译吗?。。

    完整的信息: [ERROR] -------------------------------------------------------- [ERROR] incremental res build failed. [ERROR] -------------------------------------------------------- [DEBUG] Prepare tasks time: 0.2s [DEBUG] Task engine running time: 2.6s [DEBUG] Total time: 2.8s [DEBUG] --------------------------------------------------------

    nexus5 android 6.0

    opened by spiritedRunning 33
  • 【兼容性】修改资源文件失败incremental res build failed.

    【兼容性】修改资源文件失败incremental res build failed.

    0.6.3

    错误日志:

    C:\developer\works\work_space_git_syswin\toon\toon-android>freeline.py
    [DEBUG] [dispatcher] command line args: Namespace(all=False, clean=False, cleanBuild=False, d
    ebug=False, init=False, version=False)
    [DEBUG] [scan_changed_files_command] find C:\developer\works\work_space_git_syswin\toon\toon-
    android\Toon\res\values\strings.xml has modification.
    [DEBUG] [scan_changed_files_command] find C:\developer\works\work_space_git_syswin\toon\toon-
    android\systoonCore\SystoonCore\libs\armeabi\libcom_systoon_gif.so has modification.
    [DEBUG] [scan_changed_files_command] find C:\developer\works\work_space_git_syswin\toon\toon-
    android\systoonCore\SystoonCore\libs\armeabi\libcom_systoon_gif_surface.so has modification.
    [DEBUG] [scan_changed_files_command] find C:\developer\works\work_space_git_syswin\toon\toon-
    android\systoonCore\SystoonCore\libs\x86\libcom_systoon_gif.so has modification.
    [DEBUG] [scan_changed_files_command] find C:\developer\works\work_space_git_syswin\toon\toon-
    android\systoonCore\SystoonCore\libs\x86\libcom_systoon_gif_surface.so has modification.
    [DEBUG] find Toon has 0 java files modified.
    [DEBUG] find SystoonMedia has 0 java files modified.
    [DEBUG] find SystoonCore has 0 java files modified.
    [DEBUG] project just need a incremental build.
    [DEBUG] file changed list:
    {
        "build_info": {
            "last_clean_build_time": 1473764031.6479619,
            "is_root_config_changed": false
        },
        "projects": {
            "Toon": {
                "src": [],
                "so": [],
                "assets": [],
                "libs": [],
                "res": [
                    "C:\\developer\\works\\work_space_git_syswin\\toon\\toon-android\\Toon\\res\\
    values\\strings.xml"
                ],
                "config": [],
                "cpp": [],
                "manifest": []
            },
            "SystoonMedia": {
                "src": [],
                "so": [],
                "assets": [],
                "libs": [],
                "res": [],
                "config": [],
                "cpp": [],
                "manifest": []
            },
            "SystoonCore": {
                "src": [],
                "so": [
                    "C:\\developer\\works\\work_space_git_syswin\\toon\\toon-android\\systoonCore
    \\SystoonCore\\libs\\armeabi\\libcom_systoon_gif.so",
                    "C:\\developer\\works\\work_space_git_syswin\\toon\\toon-android\\systoonCore
    \\SystoonCore\\libs\\armeabi\\libcom_systoon_gif_surface.so",
                    "C:\\developer\\works\\work_space_git_syswin\\toon\\toon-android\\systoonCore
    \\SystoonCore\\libs\\x86\\libcom_systoon_gif.so",
                    "C:\\developer\\works\\work_space_git_syswin\\toon\\toon-android\\systoonCore
    \\SystoonCore\\libs\\x86\\libcom_systoon_gif_surface.so"
                ],
                "assets": [],
                "libs": [],
                "res": [],
                "config": [],
                "cpp": [],
                "manifest": []
            }
        }
    }
    [DEBUG] [gradle_inc_builder] find Toon modules have res changed
    [DEBUG] [gradle_inc_builder] append C:\developer\works\work_space_git_syswin\toon\toon-androi
    d\systoonCore\SystoonCore\libs\armeabi\libcom_systoon_gif.so to native queue
    [DEBUG] [gradle_inc_builder] append C:\developer\works\work_space_git_syswin\toon\toon-androi
    d\systoonCore\SystoonCore\libs\armeabi\libcom_systoon_gif_surface.so to native queue
    [DEBUG] [gradle_inc_builder] append C:\developer\works\work_space_git_syswin\toon\toon-androi
    d\systoonCore\SystoonCore\libs\x86\libcom_systoon_gif.so to native queue
    [DEBUG] [gradle_inc_builder] append C:\developer\works\work_space_git_syswin\toon\toon-androi
    d\systoonCore\SystoonCore\libs\x86\libcom_systoon_gif_surface.so to native queue
    [DEBUG] [task_engine] depth: 1, task: [connect_device_task]
    [DEBUG] [task_engine] depth: 1, task: [gradle_aapt_task]
    [DEBUG] [task_engine] depth: 2, task: [SystoonCore]
    [DEBUG] [task_engine] depth: 2, task: [SystoonMedia]
    [DEBUG] [task_engine] depth: 4, task: [Toon]
    [DEBUG] [task_engine] depth: 5, task: [merge_dex_task]
    [DEBUG] [task_engine] depth: 7, task: [gradle_sync_task]
    [DEBUG] [task_engine] depth: 8, task: [clean_cache_task]
    [DEBUG] [task_engine] depth: 9, task: [update_stat_task]
    [DEBUG] [connect_device_task] connect_device_task start to run after waiting 0.0s
    [DEBUG] [gradle_aapt_task] gradle_aapt_task start to run after waiting 0.0s
    [DEBUG] [sync_client] start to connect device...
    [DEBUG] [Toon_inc_invoker] find Toon has resource files modification.
    [DEBUG] [sync_client] apktime path: C:\developer\works\work_space_git_syswin\toon\toon-androi
    d\Toon\build\freeline\freeline-assets\apktime
    [DEBUG] [gradle_aapt_task] start to execute aapt command...
    [DEBUG] [sync_client] your local sync value is: 314000
    [DEBUG] [sync_client] your local uuid value is: 314000
    [DEBUG] [tracing] generate_id_keeper_files: 0.999927520752ms
    [DEBUG] [Toon_inc_invoker] find relative path: res\values\strings.xml
    [DEBUG] [Toon_inc_invoker] find relative path: res\values\freeline_id_keeper_public.xml
    [DEBUG] [Toon_inc_invoker] find relative path: res\values\freeline_id_keeper_ids.xml
    [DEBUG] [Toon_inc_invoker] aapt exec: freeline\release-tools\FreelineAapt.exe package -f -I C
    :\developer\engineering_tools\sdk\platforms\android-22\android.jar -M C:\developer\works\work
    _space_git_syswin\toon\toon-android\Toon\build\intermediates\manifests\full\debug\AndroidMani
    fest.xml -S C:\developer\works\work_space_git_syswin\toon\toon-android\Toon\res -S C:\develop
    er\works\work_space_git_syswin\toon\toon-android\SystoonMedia\res -S C:\developer\works\work_
    space_git_syswin\toon\toon-android\systoonCore\SystoonCore\res -S C:\developer\works\work_spa
    ce_git_syswin\toon\toon-android\Toon\build\intermediates\exploded-aar\com.squareup.leakcanary
    \leakcanary-android\1.3.1\res -S C:\developer\works\work_space_git_syswin\toon\toon-android\T
    oon\build\intermediates\exploded-aar\com.github.moduth\blockcanary\1.0.2\res -S C:\developer\
    works\work_space_git_syswin\toon\toon-android\Toon\build\intermediates\exploded-aar\com.antfo
    rtune.freeline\runtime\0.6.3\res -S C:\developer\works\work_space_git_syswin\toon\toon-androi
    d\Toon\build\intermediates\exploded-aar\io.reactivex\rxandroid\1.2.1\res -S C:\developer\work
    s\work_space_git_syswin\toon\toon-android\Toon\build\intermediates\exploded-aar\com.tencent.b
    ugly\crashreport\2.2.2\res -S C:\developer\works\work_space_git_syswin\toon\toon-android\Toon
    \build\intermediates\exploded-aar\org.altbeacon\android-beacon-library\2.9.1\res -S C:\develo
    per\works\work_space_git_syswin\toon\toon-android\Toon\build\intermediates\exploded-aar\appco
    mpat-v7-22.2.1\res -S C:\developer\works\work_space_git_syswin\toon\toon-android\Toon\build\i
    ntermediates\exploded-aar\beaconlib\res -S C:\developer\works\work_space_git_syswin\toon\toon
    -android\Toon\build\intermediates\exploded-aar\com.alipay.euler\andfix\0.4.0\res -S C:\develo
    per\works\work_space_git_syswin\toon\toon-android\Toon\build\intermediates\exploded-aar\com.a
    ndroid.support\multidex\1.0.1\res -S C:\developer\works\work_space_git_syswin\toon\toon-andro
    id\Toon\build\generated\res\rs\debug -S C:\developer\works\work_space_git_syswin\toon\toon-an
    droid\Toon\build\freeline\Toon\backup\res -A C:\developer\works\work_space_git_syswin\toon\to
    on-android\Toon\build\freeline\freeline-assets -A C:\developer\works\work_space_git_syswin\to
    on\toon-android\Toon\assets --custom-package com.systoon.toon -m -J C:\developer\works\work_s
    pace_git_syswin\toon\toon-android\Toon\build\freeline\Toon\backup --auto-add-overlay -P C:\de
    veloper\works\work_space_git_syswin\toon\toon-android\Toon\build\freeline\Toon\backup\res\val
    ues\freeline_id_keeper_public.xml -F C:\developer\works\work_space_git_syswin\toon\toon-andro
    id\Toon\build\freeline\Toon\respack\Toon.pack --debug-mode --auto-add-overlay --no-version-ve
    ctors --ignore-assets public_id.xml:public.xml:*.bak:.*
    [DEBUG] [sync_client] server result is 1
    [DEBUG] [sync_client] find device port: 41128
    [DEBUG] [connect_device_task] connect_device_task finish in 0.3s
    [DEBUG] [gradle_aapt_task] gradle_aapt_task finish in 19.9s
    [DEBUG] [SystoonMedia] SystoonMedia start to run after waiting 19.9s
    [DEBUG] [SystoonCore] SystoonCore start to run after waiting 19.9s
    [DEBUG] [Toon] Toon start to run after waiting 19.9s
    [DEBUG] [merge_dex_task] merge_dex_task start to run after waiting 19.9s
    [DEBUG] [gradle_sync_task] gradle_sync_task start to run after waiting 19.7s
    [DEBUG] [clean_cache_task] clean_cache_task start to run after waiting 0.0s
    [DEBUG] [update_stat_task] update_stat_task start to run after waiting 0.0s
    [DEBUG] [task_engine] task engine occurs exception, engine will exit.
    [DEBUG] [task_engine] it takes task engine 19.94s to execute tasks.
    [ERROR] --------------------------------------------------------
    [ERROR] Freeline ERROR
    [ERROR] --------------------------------------------------------
    Freeline trace:: makeFileResources all resource. Time Elapsed: 15.596000 ms
    Freeline trace:: compile values. Time Elapsed: 2.866000 ms
    Freeline trace:: makeFileResources for color and menu. Time Elapsed: 0.000000 ms
    
    C:\developer\works\work_space_git_syswin\toon\toon-android\Toon\build\freeline\Toon\backup\re
    s\values\freeline_id_keeper_public.xml:5800: error: Public symbol raw/blur declared here is n
    ot defined.
    C:\developer\works\work_space_git_syswin\toon\toon-android\Toon\build\freeline\Toon\backup\re
    s\values\freeline_id_keeper_public.xml:5810: error: Public symbol raw/rotate declared here is
     not defined.
    
    [ERROR] --------------------------------------------------------
    [ERROR] incremental res build failed.
    [ERROR] --------------------------------------------------------
    [DEBUG] Prepare tasks time: 0.9s
    [DEBUG] Task engine running time: 19.9s
    [DEBUG] Total time: 20.8s
    [DEBUG] --------------------------------------------------------
    

    Log日志:

    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: freeline start initial process...
    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: freeline init application
    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: start to inject dex...
    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: start to inject resources...
    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: dynamicInfoSp: {}
    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: resMap: {}
    09-13 18:42:41.228 15532-15532/com.systoon.toon I/Freeline: start to load hackload.dex...
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline.hackDex: /data/data/com.systoon.toon/cache/hack/hackload.dex dex length: 848
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline.hackDex: /data/data/com.systoon.toon/cache/hack/opt opt length: 4096
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline.hackDex: after opt, dex len:848; opt len:4096
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline: load hackload,dex size:848
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline: start to inject native lib...
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline.hackNative: native lib inject process start...
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline.hackNative: inject native lib success [Ljava.io.File;@423d1f20
    09-13 18:42:41.238 15532-15532/com.systoon.toon I/Freeline: freeline init server
    09-13 18:42:41.348 15568-15568/com.systoon.toon:freeline I/Freeline: freeline start initial process...
    09-13 18:42:41.358 15568-15568/com.systoon.toon:freeline I/Freeline.Service: onStartCommand Received start id 1, intent: Intent { cmp=com.systoon.toon/com.antfortune.freeline.FreelineService }
    09-13 18:42:41.368 15568-15568/com.systoon.toon:freeline D/Freeline.LongLinkServer: Freeline.increment server running on port 41128
    09-13 18:42:41.378 15568-15568/com.systoon.toon:freeline I/Freeline.Service$Inner: onStartCommand Received start id 1, intent: Intent { cmp=com.systoon.toon/com.antfortune.freeline.FreelineService$InnerService }
    09-13 18:42:55.928 15568-15583/com.systoon.toon:freeline I/Freeline: ext:98000
    09-13 18:42:55.928 15568-15583/com.systoon.toon:freeline I/Freeline.CheckSync: devUuid: 98000
    09-13 18:42:55.928 15568-15583/com.systoon.toon:freeline I/Freeline.CheckSync: dev apkflag:98000, last sync is:98000, current sync is:98000
    09-13 18:44:10.718 15568-15583/com.systoon.toon:freeline I/Freeline.CheckSync: devUuid: 98000
    09-13 18:44:10.718 15568-15583/com.systoon.toon:freeline I/Freeline.CheckSync: dev apkflag:98000, last sync is:98000, current sync is:98000
    09-13 18:54:58.778 29644-29644/com.systoon.toon I/Freeline: freeline start initial process...
    09-13 18:54:58.778 29644-29644/com.systoon.toon I/Freeline: freeline init application
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline: start to inject dex...
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline: start to inject resources...
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline: dynamicInfoSp: {}
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline: resMap: {}
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline: start to load hackload.dex...
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline.hackDex: /data/data/com.systoon.toon/cache/hack/hackload.dex dex length: 848
    09-13 18:54:58.788 29644-29644/com.systoon.toon I/Freeline.hackDex: /data/data/com.systoon.toon/cache/hack/opt opt length: 4096
    09-13 18:54:58.798 29644-29644/com.systoon.toon I/Freeline.hackDex: after opt, dex len:848; opt len:4096
    09-13 18:54:58.798 29644-29644/com.systoon.toon I/Freeline: load hackload,dex size:848
    09-13 18:54:58.798 29644-29644/com.systoon.toon I/Freeline: start to inject native lib...
    09-13 18:54:58.798 29644-29644/com.systoon.toon I/Freeline.hackNative: native lib inject process start...
    09-13 18:54:58.798 29644-29644/com.systoon.toon I/Freeline.hackNative: inject native lib success [Ljava.io.File;@4250a5b8
    09-13 18:54:58.798 29644-29644/com.systoon.toon I/Freeline: freeline init server
    09-13 18:54:58.988 30607-30607/com.systoon.toon:freeline I/Freeline: freeline start initial process...
    09-13 18:54:58.998 30607-30607/com.systoon.toon:freeline I/Freeline.Service: onStartCommand Received start id 1, intent: Intent { cmp=com.systoon.toon/com.antfortune.freeline.FreelineService }
    09-13 18:54:59.018 30607-30607/com.systoon.toon:freeline D/Freeline.LongLinkServer: Freeline.increment server running on port 41128
    09-13 18:54:59.038 30607-30607/com.systoon.toon:freeline I/Freeline.Service$Inner: onStartCommand Received start id 1, intent: Intent { cmp=com.systoon.toon/com.antfortune.freeline.FreelineService$InnerService }
    09-13 18:55:01.408 30735-30735/com.systoon.toon:TNMsgBoxService I/Freeline: freeline start initial process...
    09-13 19:05:33.618 30607-30627/com.systoon.toon:freeline I/Freeline: ext:314000
    09-13 19:05:33.628 30607-30627/com.systoon.toon:freeline I/Freeline.CheckSync: devUuid: 314000
    09-13 19:05:33.628 30607-30627/com.systoon.toon:freeline I/Freeline.CheckSync: dev apkflag:314000, last sync is:314000, current sync is:314000
    09-13 19:06:20.058 30607-30627/com.systoon.toon:freeline I/Freeline.CheckSync: devUuid: 314000
    09-13 19:06:20.058 30607-30627/com.systoon.toon:freeline I/Freeline.CheckSync: dev apkflag:314000, last sync is:314000, current sync is:314000
    
    bug 
    opened by TangXiaoLv 30
  • 运行python freeline.py的时候报错: Freeline ERROR,  Please make sure your application is properly running in your device.

    运行python freeline.py的时候报错: Freeline ERROR, Please make sure your application is properly running in your device.

    在运行脚本 python freeline.py的时候,命令行重试了24秒,之后报错:

    [DEBUG] [sync_client] apktime path: F:\17.MusicClient\Android\Music\MusicUI\Music_MTN\MusicUI_MTN\build\freeline\freeline-assets\apktime [DEBUG] [sync_client] your local sync value is: 960000 [DEBUG] [sync_client] your local uuid value is: d4e0402209cd5cc4bd00c0e2b99116cf [DEBUG] [sync_client] try to connect device 23 times... [DEBUG] [sync_client] apktime path: F:\17.MusicClient\Android\Music\MusicUI\Music_MTN\MusicUI_MTN\build\freeline\freeline-assets\apktime [DEBUG] [sync_client] your local sync value is: 960000 [DEBUG] [sync_client] your local uuid value is: d4e0402209cd5cc4bd00c0e2b99116cf [DEBUG] [sync_client] try to connect device 24 times... [DEBUG] [sync_client] package com.mtn.softclient.music.baseline not found. Please make sure your application is properly running in your device, freeline will start a clean build [DEBUG] [connect_device_task] connect_device_task finish in 40.5s [DEBUG] [gradle_sync_task] gradle_sync_task start to run after waiting 40.5s [DEBUG] [clean_cache_task] clean_cache_task start to run after waiting 40.5s [DEBUG] [update_stat_task] update_stat_task start to run after waiting 40.5s [DEBUG] [task_engine] task engine occurs exception, engine will exit. [DEBUG] [task_engine] it takes task engine 40.52s to execute tasks. [ERROR] -------------------------------------------------------- [ERROR] Freeline ERROR [ERROR] -------------------------------------------------------- Please make sure your application is properly running in your device. Check follow steps: 1. If freeline is not added to your app's denpendencies, modifiy your dependency and run python freeline.py -f. [ERROR] -------------------------------------------------------- [ERROR] Package com.mtn.softclient.music.baseline is not found. [ERROR] -------------------------------------------------------- [DEBUG] Prepare tasks time: 5.3s [DEBUG] Task engine running time: 40.5s [DEBUG] Total time: 45.9s

    —————————————————————————————————————————————

    但是我运行adb shell pm list packages com.mtn.softclient.music.baseline的时候是有这个程序的: F:\17.MusicClient\Android\Music\MusicUI\Music_MTN>adb shell pm list packages com.mtn.softclient.music.baseline adb server is out of date. killing...

    • daemon started successfully * package:com.mtn.softclient.music.baseline

    此问题困扰了我很久,请帮忙看一下,非常感谢@!!

    opened by BlackMagicHappy 30
  • xml布局无法预览

    xml布局无法预览

    Expecting a stackmap frame at branch target 22 Exception Details: Location: R$styleable. ()V @10: ifeq Reason: Expected stackmap frame at this location. Bytecode: 0x0000000: 2ab7 02dc b202 e2b6 02e6 9900 0cb2 02ec 0x0000010: 1302 eeb6 02f4 b1

    enhancement 
    opened by beasonshu 30
  • 我先执行python freeline.py -f 然后随便找个类修改一点代码,在执行python freeline.py,报错

    我先执行python freeline.py -f 然后随便找个类修改一点代码,在执行python freeline.py,报错

    [options] 未与 -source 1.7 一起设置引导类路径
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/src/main/java/com/mingjun/news/ui/module/news/NewsDetailActivity.java:6: 错误: 程序包android.support.annotation不存在
    import android.support.annotation.NonNull;
                                     ^
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/src/main/java/com/mingjun/news/ui/module/news/NewsDetailActivity.java:19: 错误: 程序包butterknife不存在
    import butterknife.BindView;
                      ^
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/src/main/java/com/mingjun/news/ui/module/news/NewsDetailActivity.java:20: 错误: 程序包butterknife不存在
    import butterknife.ButterKnife;
                      ^
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/src/main/java/com/mingjun/news/ui/module/news/NewsDetailActivity.java:22: 错误: 无法访问AppCompatActivity
    public class NewsDetailActivity extends MvpActivity implements LceView<NewsDetail> {
           ^
      找不到android.support.v7.app.AppCompatActivity的类文件
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/build/intermediates/classes/debug/com/mingjun/news/data/model/News.class: 警告: 无法找到类型 'SerializedName' 的注释方法 'value()': 找不到com.google.gson.annotations.SerializedName的类文件
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/src/main/java/com/mingjun/news/ui/module/news/NewsDetailActivity.java:24: 错误: 找不到符号
        @BindView(R.id.web_view)
         ^
      符号:   类 BindView
      位置: 类 NewsDetailActivity
    /Users/Fearless/Downloads/svn/android-zingchat/NewsApp-MVP/app/src/main/java/com/mingjun/news/ui/module/news/NewsDetailActivity.java:47: 错误: 找不到符号
        @NonNull
         ^
      符号:   类 NonNull
      位置: 类 NewsDetailActivity
    
    [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] --------------------------------------------------------
    
    opened by fearlesstrek 28
  • FreelineAapt 编译资源时异常退出

    FreelineAapt 编译资源时异常退出

    每次修改布局文件后增量编译就报这个错。全量编译能通过。但是也会有error。下面是修改layout文件后增量编译的log. [ERROR] -------------------------------------------------------- [ERROR] Freeline ERROR [ERROR] --------------------------------------------------------

    warning: overwriting '/Users/lqy/AndroidStudioProjects/XXX/app/build/intermediates/exploded-aar/com.antfortune.freeline/runtime/0.8.2/assets/apktime' with '/Users/lqy/AndroidStudioProjects/XXX/app/build/freeline/freeline-assets/apktime' (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.') /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-xhdpi/ease_chat_video_call_self.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ease_chatting_biaoqing_btn_enable.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ease_icon_marka.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ease_mm_title_remove.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-xhdpi/ease_mm_title_remove.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ease_record_animate_12.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ease_to_group_details_normal.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ee_30.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ee_31.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/easeui/res/drawable-hdpi/ee_35.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited /Users/lqy/AndroidStudioProjects/XXX/app/src/main/res/mipmap-xhdpi/bg_main_switch.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited

    [ERROR] -------------------------------------------------------- [ERROR] incremental res build failed. [ERROR] -------------------------------------------------------- [DEBUG] Prepare tasks time: 0.2s [DEBUG] Task engine running time: 2.7s [DEBUG] Total time: 2.9s [DEBUG] -------------------------------------------------------- searaindeMacBook-Pro:XXX lqy$

    opened by SearainLee 26
  • 更新到0.6.3之后initFreeline卡住

    更新到0.6.3之后initFreeline卡住

    find variant debug start hack process... variant release is not debug, skip hack process. :initFreeline Freeline init process start... Downloading release pack from https://github.com/alibaba/freeline/releases/download/0.6.3/freeline-v0.6.3.zip Please wait a minute... [get] Getting: https://github.com/alibaba/freeline/releases/download/0.6.3/freeline-v0.6.3.zip [get] To: H:\JiangSuPlatforms\freeline.zip.tmp [get] https://github.com/alibaba/freeline/releases/download/0.6.3/freeline-v0.6.3.zip moved to https://github-cloud.s3.amazonaws.com/releases/64864962/a2b9d938-7818-11e6-9ec6-e807fad5742a.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160912%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160912T063436Z&X-Amz-Expires=300&X-Amz-Signature=8a2010b232e07d9239c04c56caf88240755649044b99e356fc273fa60d8ded8a&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dfreeline-v0.6.3.zip&response-content-type=application%2Foctet-stream

    Building 0% > :initFreeline

    一直卡在这里动不了了

    opened by mashuai1990 26
  • 连接不上设备

    连接不上设备

    ERROR] -------------------------------------------------------- [ERROR] Freeline ERROR [ERROR] -------------------------------------------------------- Please make sure your application is properly running in your device. Check follow steps: 1. If freeline is not added to your app's denpendencies, modifiy your dependency and run python freeline.py -f. [ERROR] -------------------------------------------------------- [ERROR] Package com.XXX is not found. [ERROR] ---------------------------------------

    duplicate 
    opened by yanweimin7 26
  • No resource type specified

    No resource type specified

    不是十月份就支持databinding了吗?全量编译可以运行程序,但是一直报下面的错。无法进行增量编译。使用版本为AS插件版1.1.2.1

    Freeline trace:: makeFileResources all resource. Time Elapsed: 11126.082000 ms 
    Freeline trace:: compile values. Time Elapsed: 208.800000 ms 
    Freeline trace:: makeFileResources for color and menu. Time Elapsed: 0.331000 ms 
    Freeline trace:: generate all bag attributes and assign indices. Time Elapsed: 66.975000 ms 
    Freeline trace:: compile all xml. Time Elapsed: 127.003000 ms 
    
    -resoucres-md5-cache-path = /***/app/build/freeline/arsc_cache.dat
    warning: overwriting '/***/app/build/intermediates/exploded-aar/com.antfortune.freeline/runtime/0.8.3/assets/apktime' with '/***/app/build/freeline/freeline-assets/apktime'
        (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.*')
        (skipping file '.DS_Store' due to ANDROID_AAPT_IGNORE pattern '.*')
    /***/leancloudchatkit/src/main/res/drawable-xhdpi/lcim_bottom_bar_action_button_normal.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
    /***/leancloudchatkit/src/main/res/drawable-xhdpi/lcim_bottom_bar_action_button_pressed.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
    ...
    /app/src/main/res/layout/dialog_user_info.xml:53: error: Error: No resource type specified (at 'text' with value '@{user.data.user.nickname}').`
    
    `[ERROR] --------------------------------------------------------
    [ERROR] build base resources failed with: freeline/release-tools/FreelineAapt package -f -I /Users/Hmei/Library/Android/sdk/platforms/android-24/android.jar -M /***/app/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /***/app/build/freeline/freeline-databinding/app/0ee7b6e3b6039864c8ecd8d4f6b8791d/res -S /***/app/build/generated/res/rs/debug -S /***/leancloudchatkit/src/main/res -S /***/app/build/generated/fabric/res/debug -S /***/thirdpartylogin/src/main/res -S /***/app/build/generated/res/resValues/debug -S /***/app/src/main/res -S /***/app/build/intermediates/exploded-aar/com.amitshekhar.android/debug-db/0.4.0/res -S /***/app/build/intermediates/exploded-aar/com.antfortune.freeline/runtime/0.8.3/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-compat/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-core-utils/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-core-ui/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-media-compat/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-fragment/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-v4/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.databinding/library/1.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.databinding/adapters/1.2.1/res -S /***/app/build/intermediates/exploded-aar/com.bigkoo/pickerview/2.1.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/24.2.1/res -S /***/app/build/intermediates/exploded-aar/me.zhouzhuo.zzletterssidebar/zz-letters-sidebar/1.0.2/res -S /***/app/build/intermediates/exploded-aar/cn.leancloud.android/avoscloud-push/v3.15.6/res -S /***/app/build/intermediates/exploded-aar/com.qiniu.pili/pili-android-qos/0.8.18/res -S /***/app/build/intermediates/exploded-aar/com.youth.banner/banner/1.4.4/res -S /***/app/build/intermediates/exploded-aar/com.githang/status-bar-compat/0.3/res -S /***/app/build/intermediates/exploded-aar/cn.jiguang/jpush/2.2.0/res -S /***/app/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/24.2.1/res -S /***/app/build/intermediates/exploded-aar/io.reactivex/rxandroid/1.2.1/res -S /***/app/build/intermediates/exploded-aar/cn.finalteam.rxgalleryfinal/library/0.0.3/res -S /***/app/build/intermediates/exploded-aar/com.orhanobut/logger/1.15/res -S /***/app/build/intermediates/exploded-aar/com.android.support/percent/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/design/24.2.1/res -S /***/app/build/intermediates/exploded-aar/com.android.support/multidex/1.0.1/res -S /***/app/build/freeline/app/backup/res -A /***/app/build/freeline/freeline-assets -A /***/app/build/generated/assets/shaders/debug -A /***/app/build/intermediates/exploded-aar/com.amitshekhar.android/debug-db/0.4.0/assets -A /***/app/build/intermediates/exploded-aar/com.antfortune.freeline/runtime/0.8.3/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-compat/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-core-utils/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-core-ui/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-media-compat/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-fragment/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-v4/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.databinding/library/1.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.databinding/adapters/1.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.bigkoo/pickerview/2.1.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/me.zhouzhuo.zzletterssidebar/zz-letters-sidebar/1.0.2/assets -A /***/app/build/intermediates/exploded-aar/cn.leancloud.android/avoscloud-push/v3.15.6/assets -A /***/app/build/intermediates/exploded-aar/com.qiniu.pili/pili-android-qos/0.8.18/assets -A /***/app/build/intermediates/exploded-aar/com.youth.banner/banner/1.4.4/assets -A /***/app/build/intermediates/exploded-aar/com.githang/status-bar-compat/0.3/assets -A /***/app/build/intermediates/exploded-aar/cn.jiguang/jpush/2.2.0/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/io.reactivex/rxandroid/1.2.1/assets -A /***/app/build/intermediates/exploded-aar/cn.finalteam.rxgalleryfinal/library/0.0.3/assets -A /***/app/build/intermediates/exploded-aar/com.orhanobut/logger/1.15/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/percent/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/design/24.2.1/assets -A /***/app/build/intermediates/exploded-aar/com.android.support/multidex/1.0.1/assets -m -J /***/app/build/freeline/app/backup --auto-add-overlay -F /***/app/build/freeline/base-res.so --debug-mode --no-version-vectors --resoucres-md5-cache-path /***/app/build/freeline/arsc_cache.dat --ignore-assets public_id.xml:public.xml:*.bak:.*
    
    opened by pollyfat 24
  • initFreeline的时候报错

    initFreeline的时候报错

    initFreeline的时候报错了,错误信息如下,是gradle的版本问题吗?我现在的gradle版本是2.2.1的

    • What went wrong: A problem occurred evaluating project ':packages:jupiter'.

    Failed to apply plugin [id 'com.antfortune.freeline'] Could not find method testCompile() for arguments [com.antfortune.freeline:runtime-no-op:0.8.2] on org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@1ac9a702.

    opened by sameland 21
  • 希望能够提供一个样例项目,第一步就配置不过去

    希望能够提供一个样例项目,第一步就配置不过去

    Could not find method debugCompile() for arguments [com.antfortune.freeline:runtime:0.8.8] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

    opened by fuzhengyin 0
  • On Mac M1 ,Newest AndroidStudio

    On Mac M1 ,Newest AndroidStudio "Could not find com.antfortune.freeline:gradle:0.8.8"

    env:

    Android Studio Arctic Fox | 2020.3.1 Patch 2 Build #AI-203.7717.56.2031.7678000, built on August 27, 2021 Runtime version: 11.0.10+0-b96-7249189 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 11.5.1 GC: G1 Young Generation, G1 Old Generation Memory: 1280M Cores: 8 Registry: external.system.auto.import.disabled=true

    build

    A problem occurred configuring root project 'testfreeline'.
    > Could not resolve all artifacts for configuration ':classpath'.
       > Could not find com.antfortune.freeline:gradle:0.8.8.
         Searched in the following locations:
           - https://dl.google.com/dl/android/maven2/com/antfortune/freeline/gradle/0.8.8/gradle-0.8.8.pom
           - https://repo.maven.apache.org/maven2/com/antfortune/freeline/gradle/0.8.8/gradle-0.8.8.pom
         Required by:
             project :
    
    Possible solution:
     - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
    

    gradlew initFreeline:

    ➜  testfreeline git:(master) ✗ ./gradlew initFreeline
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring root project 'testfreeline'.
    > Could not resolve all artifacts for configuration ':classpath'.
       > Could not find com.antfortune.freeline:gradle:0.8.8.
         Searched in the following locations:
           - https://dl.google.com/dl/android/maven2/com/antfortune/freeline/gradle/0.8.8/gradle-0.8.8.pom
           - https://repo.maven.apache.org/maven2/com/antfortune/freeline/gradle/0.8.8/gradle-0.8.8.pom
         Required by:
             project :
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/7.0.2/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD FAILED in 1s
    ➜  testfreeline git:(master) ✗ 
    
    
    

    demo:

    https://github.com/caojianfeng/testfreeline.git

    opened by caojianfeng 1
  • cannot use freeline in Android Studio 4.1.2, how to adapt Android Studio 4.1.2?

    cannot use freeline in Android Studio 4.1.2, how to adapt Android Studio 4.1.2?

    cannot use freeline in Android Studio 4.1.2, how to adapt Android Studio 4.1.2? When use freeline in Android Studio 4.1.2, it shows minimum supported gradle version is 5.6.4,but the gradle version doesn't comply with the groovy script in freeline,it indicates: cannot find leftShift() . So how to solve it ?Thank you.

    opened by whereisnothing 2
  • JavaPoet Version collision With ViewBinding

    JavaPoet Version collision With ViewBinding

    ViewBinding is using JavePoet version newer then V1.7.0 and use function addComment and addJavadoc in JavaPoet 1.8.0.

    The following error will occur when viewbinding enable:

    Execution failed for task ':app:dataBindingGenBaseClassesDebug'.

    com.squareup.javapoet.MethodSpec$Builder.addComment(Ljava/lang/String;[Ljava/lang/Object;)Lcom/squareup/javapoet/MethodSpec$Builder

    opened by shenguojun 0
  • Custom task is not recognized by jenkins

    Custom task is not recognized by jenkins

    Hi @wakaleo,

    I was trying to run my code in jenkins and created jenkins job with the below build info and task info. But got "org.gradle.execution.TaskSelectionException: Task 'runHDFCCalculatorBDDCucumberUI' not found in root project" error.

    Custom Task Name: runHDFCCalculatorBDDCucumberUI

    Build tab: Screenshot (24)

    Task in build.gradle

    Screenshot (22)

    Error in Jenkins: Screenshot (23)

    Could you please help me by providing some solution to this error!!

    Thanks in advance

    opened by anweshadhal 0
  • 与viewBinding 冲突

    与viewBinding 冲突

    在project的build.gradle的buildscript里的dependencies里加上classpath 'com.antfortune.freeline:gradle:0.8.8',然后在app的build.gradle的android里加上 viewBinding { enabled = true },运行就会报错,去掉其中一个就能运行,报错如下: Execution failed for task ':app:dataBindingGenBaseClassesDebug'.

    com.squareup.javapoet.MethodSpec$Builder.addComment(Ljava/lang/String;[Ljava/lang/Object;)Lcom/squareup/javapoet/MethodSpec$Builder;

    viewBinding那么好用怎么能与他冲突呢,如果freeline还在维护的话麻烦看看这个问题

    opened by LinPom 1
Releases(0.8.8)
Owner
Alibaba
Alibaba Open Source
Alibaba
Automated-build-android-app-with-github-action - CI/CD Automated Build Android App Bundle / APK / Signed With Github Action

Automated Build Android With Using Github Action Project Github Action Script Us

Faisal Amir 34 Dec 19, 2022
Combines tools for fast android app devlopment

Android - Rapid Test Driven Development Combine tools to generate most of the boilerplate code. Examples how to test different aspects of an android a

Nico Küchler 379 Nov 25, 2022
TaggerString is very light library which allows to build dynamic string resource in much more readable way.

TaggerString TaggerString is very light library which allows to build dynamic string resource in much more readable way. I guess that every Android de

polok 241 Jun 3, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
A simple utility to remove unused resources in your Android app to lower the size of the APK. It's based on the Android lint tool output.

android-resource-remover android-resource-remover is utility that removes unused resources reported by Android Lint from your project. The goal is to

Keepsafe 1.3k Dec 16, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
Command-line tool to count per-package methods in Android .dex files

dex-method-counts Simple tool to output per-package method counts in an Android DEX executable grouped by package, to aid in getting under the 65,536

Mihai Parparita 2.6k Nov 25, 2022
Android Material Design Theme UI and Tool Library. Support: 4.0.3~O

GitHub OSChina 中文 English Genius-Android Genius-Android: by Material Design style and some commonly used packages. Starting in 2015, The divided into

Qiujuer 2.3k Dec 27, 2022
Android Merge Tool

AMT The Android Merge Tool (AMT) does what the name suggests: it merges arbitrary Android apps into a single merged app. As input it takes a number of

FoelliX 23 Nov 8, 2022
A command line tool that helps bulk manage resources in an Android project

Resource Mover ResourceMover is a command line tool that helps bulk manage resources in an Android project. Installation Clone project Build CLI jar u

Shopify 4 Dec 24, 2021
Android Studio's Vector Drawable conversion tool in convenient packaging.

Vector Drawable Tool This repository is simply a repackaging of the vector drawable tool from the Android Studio source code. The included Gradle file

Ryan Harter 55 Sep 26, 2022
Localization tool for Android Studio Projects

Android Strings Resource Language Diff tool In the event any additional languages are intended to be supported by your app. You can use this strings-d

Braxton Nunnally 1 Mar 24, 2022
A surgical debugging tool to uncover the layers under your app.

Scalpel DEPRECATED! Android Studio 4.0's layout inspector now includes a live-updating 3D view. Use it! A surgical debugging tool to uncover the layer

Jake Wharton 2.8k Jan 3, 2023
Tool for create complex morphing animations using VectorDrawables (allows morphing between any pair of SVG images)

VectAlign VectAlign (a.k.a. VectorDrawableAlign) is a developer's tool which automagically aligns two VectorDrawable "pathData" strings (or SVG images

Stefano Bonetta 2k Dec 29, 2022
GPS tracking tool for OpenStreetMap

OSMTracker for Android™ official source code repository is https://github.com/labexp/osmtracker-android. For more information about the project, docum

Laboratorio Experimental (ITCR @ SIUA) 455 Dec 25, 2022
GPS tracking tool for OpenStreetMap

OSMTracker for Android™ official source code repository is https://github.com/labexp/osmtracker-android. For more information about the project, docum

Laboratorio Experimental (ITCR @ SIUA) 455 Dec 25, 2022
Custom content tool for The Ponies.

PoneCrafter A sneak preview of the custom content tool for The Ponies. The Ponies is a work in progress life simulator game. The game itself has not b

The Ponies 8 Feb 13, 2022