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

[ERROR] incremental res build failed. #536

Closed spiritedRunning closed 7 years ago

spiritedRunning commented 7 years ago
/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

lomanyong commented 7 years ago

@spiritedRunning 请提问前可以先看下相关的 wiki 等说明,或者搜下已有的 issue,一般都是有相关的问题的:https://github.com/alibaba/freeline/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98#%E8%B5%84%E6%BA%90%E7%BC%96%E8%AF%91%E5%87%BA%E9%94%99public-symbol-xxxx-declared-here-is-not-defined

spiritedRunning commented 7 years ago

@lomanyong 看了之前的几个issue, 我添加了资源路径,但还是报相同的错误

extraResourceDependencyPaths = ['/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/res',
                                   '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/res',
                                       '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/embedLib/src/main/res' ]

wiki也并没有说是绝对路径还是相对路径,请问这个有影响吗?

lomanyong commented 7 years ago

@spiritedRunning 是绝对路径,如果还报错的话,麻烦把完整的日志贴上来...我帮忙看下是否有其他错误日志...

spiritedRunning commented 7 years ago

[Uploading freeline_inc.txt…]() 请帮忙看一下

lomanyong commented 7 years ago

@spiritedRunning 文件没有上传成功...

spiritedRunning commented 7 years ago

freeline_inc.txt 上传太慢了。。

lomanyong commented 7 years ago

@spiritedRunning 你的工程是从 eclipse 转过来的吗?

/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:940: error: Public symbol attr/backgroundDrawable declared here is not defined.
/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:432: error: Public symbol attr/bs_closeDrawable declared here is not defined.
/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml:434: error: Public symbol attr/bs_collapseListIcons declared here is not defined.

这几个没找到的资源是否是在/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/res这个模块的?

spiritedRunning commented 7 years ago

@lomanyong 是的,工程是从eclipse转的。你提到的几个资源是工程中引入的一个aar里面的, 叫做BottomSheet里面的,并不在这个路径。工程里其实引入了很多aar

lomanyong commented 7 years ago

@spiritedRunning 找不到的资源应该都是这些 aar 里面的...估计有可能是 eclipse 转过来的工程在编译过程中的一些资源路径没有被识别,导致的这个问题。工程可以改为标准的 Gradle 工程吗?不然就得再后面单独发版为你的这个情况做兼容了...

spiritedRunning commented 7 years ago

公司的工程由于历史原因,重新建工程估计短期应该不太可能了。请问正常freeline可以识别aar中的资源吗?

lomanyong commented 7 years ago

@spiritedRunning 必然是可以的...我刚才看了一下代码猜测是 eclipse 工程转过来的导致的资源没有被正常识别的问题。

我一会看下是否可以先给你打个小版本试用看看

spiritedRunning commented 7 years ago

好的,非常感谢

spiritedRunning commented 7 years ago

还有一点不太明白,为什么看起来freeline是拷贝了一份资源到build/freeline/Android_trunk/backup/下面?不是应该直接到工程目录找吗

lomanyong commented 7 years ago

@spiritedRunning 没有拷贝的,是单独打包一份资源。具体的原因可以看一下 freeline 相关原理的文章。

spiritedRunning commented 7 years ago

@lomanyong 请问这个问题暂时有临时方案吗?还是很想用上的,速度确实牛逼

lomanyong commented 7 years ago

@spiritedRunning 请执行一下你的 gradlew 编译命令,后面加上参数-PfreelineBuild=true > freeline_full_build.log,然后把输出的日志文件邮件发我一下...我先看下日志..

spiritedRunning commented 7 years ago

freeline_full_build.txt 我是改动了一下xml, 然后执行的,看起来好像编译成功的

lomanyong commented 7 years ago

@spiritedRunning 你没有执行编译命令呀...需要执行的是./gradlew assemble{flavor}Debug -PfreelineBuild=true > freeline_full_bulid.log这样的...刚才那份日志不对...

spiritedRunning commented 7 years ago

实在传不上去,我放到google drive了,你看能打开吗 https://drive.google.com/open?id=0B8ZzfVuVPUEHOGwtX2E2QmJweFk

这次执行的是./gradlew assembleDebug -PfreelineBuild=true > freeline_full_bulid.log

lomanyong commented 7 years ago

@spiritedRunning 抱歉回复晚了,看资源路径的日志感觉应该是都找到了。再确认一下,前面日志里的 aapt 命令带有很多 -S 参数,指定了资源路径,不知道是否有未找到的资源没有包含进去的?

spiritedRunning commented 7 years ago

你是指我最新贴的日志吗?好像没看到有-S参数唉。 对,全量编译是没有问题的,只在增量编译下有问题。而且代码的增量修改试了也是ok的。

lomanyong commented 7 years ago

@spiritedRunning 你第一次编译应该就报错了,注意下后面应该是有资源编译出错的提示的...

-S参数肯定有的~注意一下 aapt 的整个命令,就是带了各个资源目录路径的。

spiritedRunning commented 7 years ago

那现在需要我提供什么信息吗?我该如何操作才能看到出错的有用日志,我在上面的日志里好像没看到有aapt的命令和-S的参数呢

lomanyong commented 7 years ago

@spiritedRunning 从你之前发的日志里找到了:

freeline/release-tools/FreelineAapt package -f -I /Users/zach/Library/Android/sdk/platforms/android-23/android.jar -M /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/manifests/full/uc/debug/AndroidManifest.xml -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/embedLib/build/generated/res/rs/release -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/embedLib/build/generated/res/resValues/release -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/build/generated/res/rs/release -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/embedLib/src/main/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/generated/res/resValues/uc/debug -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/build/generated/res/resValues/release -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/generated/res/rs/uc/debug -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.antfortune.freeline/runtime/0.8.4/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.jakewharton.rxbinding/rxbinding/0.3.0/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/io.reactivex/rxandroid/1.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/support-v4/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.czt.mp3recorder/library/1.0.4/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/multidex/1.0.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/percent/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/design/23.2.1/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.androidadvance/topsnackbar/1.0.0/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/embedLib/src/main/res -S /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/freeline-assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/embedLib/build/generated/assets/shaders/release -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/build/generated/assets/shaders/release -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/generated/assets/shaders/uc/debug -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/third_library/EasiioSDK/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.antfortune.freeline/runtime/0.8.4/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.jakewharton.rxbinding/rxbinding/0.3.0/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/io.reactivex/rxandroid/1.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/support-v4/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.czt.mp3recorder/library/1.0.4/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/multidex/1.0.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/percent/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.android.support/design/23.2.1/assets -A /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/com.androidadvance/topsnackbar/1.0.0/assets --custom-package com.gnet.uc -m -J /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup --auto-add-overlay -P /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/backup/res/values/freeline_id_keeper_public.xml -F /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/Android_trunk/respack/Android_trunk.pack --debug-mode --auto-add-overlay --no-version-vectors --buildIncrement res/layout/add_conference_activity.xml:res/values/freeline_id_keeper_public.xml:res/values/freeline_id_keeper_ids.xml --resoucres-md5-cache-path /Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/freeline/arsc_cache.dat --ignore-assets public_id.xml:public.xml:*.bak:.*

spiritedRunning commented 7 years ago

@lomanyong 确实所有的第三方aar的资源这里面都没有引入,但是我参考这里面的路径,对照AS上res包的路径,添加之后还是不行。 下面这些就是缺少的路径:

extraResourceDependencyPaths = ['/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/baselib-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/BottomSheet-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/EasiioSDK/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/embedLib/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/gnet-meeting/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/GNetTangSDKUI-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/gokuai-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/gokuaiLib-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/MaterialDialog-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/mupdflibrary-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/progress-widget-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/TabIndicator-release/res', '/Users/zach/AndroidStudioProjects/workingDir/Android_trunk/build/intermediates/exploded-aar/tasksdk-release/res' ]

现在每次都会进行全量编译,发现我添加的这些路径都没有加到aapt的命令中,并且提示build base resources failed. 但是app还是能运行的起来,这个很神奇啊

lomanyong commented 7 years ago

@spiritedRunning 这几个路径存在吗?你也可以看下工程下的freeline_project_description.json文件是否含有相关字段包含了这些路径..

spiritedRunning commented 7 years ago

找到原因了,我这个路径写的有点误差, 改过来之后终于可以了! 但是。。。运行起来之后,app会自动退出,然后手动点进入,会直接crash, 提示:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gnet.uc/com.gnet.uc.activity.login.LoginActivity}: android.view.InflateException: Binary XML file line #96: Binary XML file line #96: Error inflating class com.gnet.uc.activity.login.LoginCompleteTextView
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                             at android.os.Looper.loop(Looper.java:148)
                                                             at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                          Caused by: android.view.InflateException: Binary XML file line #96: Binary XML file line #96: Error inflating class com.gnet.uc.activity.login.LoginCompleteTextView
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                                                             at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)
                                                             at android.app.Activity.setContentView(Activity.java:2166)
                                                             at com.gnet.uc.activity.login.LoginActivity.onCreate(LoginActivity.java:167)
                                                             at android.app.Activity.performCreate(Activity.java:6237)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                             at android.os.Looper.loop(Looper.java:148) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                          Caused by: android.view.InflateException: Binary XML file line #96: Error inflating class com.gnet.uc.activity.login.LoginCompleteTextView
                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:645)
                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
                                                             at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
                                                             at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
                                                             at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                             at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
                                                             at android.app.Activity.setContentView(Activity.java:2166) 
                                                             at com.gnet.uc.activity.login.LoginActivity.onCreate(LoginActivity.java:167) 
                                                             at android.app.Activity.performCreate(Activity.java:6237) 
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                             at android.os.Looper.loop(Looper.java:148) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                          Caused by: java.lang.reflect.InvocationTargetException
                                                             at java.lang.reflect.Constructor.newInstance(Native Method)
                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:619)
                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                                                             at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
                                                             at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
                                                             at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                             at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
                                                             at android.app.Activity.setContentView(Activity.java:2166) 
                                                             at com.gnet.uc.activity.login.LoginActivity.onCreate(LoginActivity.java:167) 
                                                             at android.app.Activity.performCreate(Activity.java:6237) 
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                             at android.os.Looper.loop(Looper.java:148) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                          Caused by: java.lang.StringIndexOutOfBoundsException: length=0; index=0
                                                             at java.lang.String.charAt(Native Method)
                                                             at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:107)
                                                             at android.content.res.TypedArray.getInt(TypedArray.java:355)
                                                             at android.widget.TextView.<init>(TextView.java:1108)
                                                             at android.widget.EditText.<init>(EditText.java:64)
                                                             at android.widget.AutoCompleteTextView.<init>(AutoCompleteTextView.java:142)
                                                             at android.widget.AutoCompleteTextView.<init>(AutoCompleteTextView.java:137)
                                                          at android.widget.AutoCompleteTextView.<init>(AutoCompleteTextView`

看起来是第一个页面的所有控件都找不到了。。。

lomanyong commented 7 years ago

@spiritedRunning 把你目录下的build/freeline/base-res.so重命名为base-res.apk,然后再 AS 中打开,看下资源包是否正常,包名是否正确。

spiritedRunning commented 7 years ago

看起来没有太大问题,资源都在的, 没有太细看。不过看base-res.so从全量到增量并没有修改,这是不是有问题?另外全量编译运行起来是正常的。

lomanyong commented 7 years ago

@spiritedRunning 跟这里的base-res.so没有关系的...

参考一下这个issue: #291 ,跟你遇见了一样的错误堆栈,有可能是你工程本身的一些代码原因导致的。

spiritedRunning commented 7 years ago

@lomanyong 试了一下确实是这个问题,很强势! 不过还想请教一下为什么用gradle编译就没有问题呢

lomanyong commented 7 years ago

@spiritedRunning 因为 Gradle 编译资源的时候会做 merge 等工作,实际上容错率更高... FreelineAapt 之前也各种遇见大家本身 xml 有问题的现象...后来我们都是改进 FreelineAapt 来兼容这些情况...然后就没有问题了...

spiritedRunning commented 7 years ago

原来如此,感谢!