Closed asdf3309 closed 7 years ago
@asdf3309 hi,能够提供一个可以复现这个问题的sample工程吗?我这里没办法复现这个问题...
修改资源文件, 重新运行, 就出现这个问题. 下面是一个堆栈信息:
-15 15:17:27.099 11291 11291 E AndroidRuntime: FATAL EXCEPTION: main
11-15 15:17:27.099 11291 11291 E AndroidRuntime: Process: a.b.c.d, PID: 11291
11-15 15:17:27.099 11291 11291 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{a.b.c.d/a.b.c.d.activity.LoginActivity}: android.view.InflateException: Binary XML file line #108: Binary XML file line #108: Error inflating class EditText
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2456)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:159)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1384)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.os.Looper.loop(Looper.java:152)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5507)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #108: Binary XML file line #108: Error inflating class EditText
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at a.b.c.d.activity.LoginActivity.normalLoginLogic(LoginActivity.java:119)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at a.b.c.d.activity.LoginActivity.onCreate(LoginActivity.java:99)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6304)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: ... 9 more
11-15 15:17:27.099 11291 11291 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #108: Error inflating class EditText
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: ... 18 more
11-15 15:17:27.099 11291 11291 E AndroidRuntime: Caused by: java.lang.StringIndexOutOfBoundsException: length=0; index=0
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at java.lang.String.charAt(Native Method)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:107)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.content.res.TypedArray.getInt(TypedArray.java:355)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.widget.TextView.<init>(TextView.java:1111)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.widget.EditText.<init>(EditText.java:64)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.widget.EditText.<init>(EditText.java:60)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:62)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:58)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1017)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1076)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746)
11-15 15:17:27.099 11291 11291 E AndroidRuntime: ... 28 more
@lomanyong , 这个问题能尽快修一下么?
@phoenix19900219 有可以复现这个问题的 sample 工程吗?单纯看这个log的话没办法定位是哪里有问题...
@lomanyong, https://github.com/phoenix19900219/Freeline-creash-demo.
@phoenix19900219 收到,我看下...
@phoenix19900219 这个demo在我这里运行正常...增量资源编译没有crash发生。同样的demo你那里如果发生了crash的话,可以给我一下你的crash的堆栈吗?
以及,你的设备是?系统版本是?
@lomanyong crash堆栈:
11-15 17:55:09.996 22819 22819 E AndroidRuntime: FATAL EXCEPTION: main
11-15 17:55:09.996 22819 22819 E AndroidRuntime: Process: com.stone.freeline_creash_demo, PID: 22819
11-15 17:55:09.996 22819 22819 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stone.freeline_creash_demo/com.stone.freeline_creash_demo.LoginActivity}: android.view.InflateException: Binary XML file line #106: Binary XML file line #106: Error inflating class EditText
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2456)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:159)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1384)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.os.Looper.loop(Looper.java:152)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5507)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #106: Binary XML file line #106: Error inflating class EditText
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at com.stone.freeline_creash_demo.LoginActivity.onCreate(LoginActivity.java:16)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6304)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: ... 9 more
11-15 17:55:09.996 22819 22819 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #106: Error inflating class EditText
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: ... 17 more
11-15 17:55:09.996 22819 22819 E AndroidRuntime: Caused by: java.lang.NumberFormatException: Invalid int: "res/drawable-xxxhdpi-v4/abc_ic_star_black_16dp.png"
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at java.lang.Integer.invalidInt(Integer.java:138)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at java.lang.Integer.parse(Integer.java:410)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at java.lang.Integer.parseInt(Integer.java:367)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:133)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.content.res.TypedArray.getInt(TypedArray.java:355)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.widget.TextView.<init>(TextView.java:1111)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.widget.EditText.<init>(EditText.java:64)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.widget.EditText.<init>(EditText.java:60)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:62)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:58)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1017)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1076)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746)
11-15 17:55:09.996 22819 22819 E AndroidRuntime: ... 27 more
@phoenix19900219 使用的设备和系统版本是?
@lomanyong 机型是: 一加3, 系统6.0.1; Lenovo Z90-7, 系统6.0.1
@lomanyong 下面这个是是在 "华为 Hol-T00" (系统4.2.2)上报的crash, 增量资源编译后一启动就crash了:
E/AndroidRuntime( 3251): FATAL EXCEPTION: main
E/AndroidRuntime( 3251): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stone.freeline_creash_demo/com.stone.freeline_creash_demo.MainActivity}: android.view.InflateException: Binary XML file line #5: Error inflating class android.widget.FrameLayout
E/AndroidRuntime( 3251): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)
E/AndroidRuntime( 3251): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
E/AndroidRuntime( 3251): at android.app.ActivityThread.access$600(ActivityThread.java:169)
E/AndroidRuntime( 3251): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1388)
E/AndroidRuntime( 3251): at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime( 3251): at android.os.Looper.loop(Looper.java:194)
E/AndroidRuntime( 3251): at android.app.ActivityThread.main(ActivityThread.java:5433)
E/AndroidRuntime( 3251): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 3251): at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime( 3251): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:922)
E/AndroidRuntime( 3251): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
E/AndroidRuntime( 3251): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 3251): Caused by: android.view.InflateException: Binary XML file line #5: Error inflating class android.widget.FrameLayout
E/AndroidRuntime( 3251): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
E/AndroidRuntime( 3251): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
E/AndroidRuntime( 3251): at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2827)
E/AndroidRuntime( 3251): at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2890)
E/AndroidRuntime( 3251): at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:1583)
E/AndroidRuntime( 3251): at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:371)
E/AndroidRuntime( 3251): at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:320)
E/AndroidRuntime( 3251): at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:281)
E/AndroidRuntime( 3251): at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)
E/AndroidRuntime( 3251): at com.stone.freeline_creash_demo.MainActivity.onCreate(MainActivity.java:13)
E/AndroidRuntime( 3251): at android.app.Activity.performCreate(Activity.java:5211)
E/AndroidRuntime( 3251): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146)
E/AndroidRuntime( 3251): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336)
E/AndroidRuntime( 3251): ... 11 more
E/AndroidRuntime( 3251): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime( 3251): at java.lang.reflect.Constructor.constructNative(Native Method)
E/AndroidRuntime( 3251): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
E/AndroidRuntime( 3251): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
E/AndroidRuntime( 3251): ... 29 more
E/AndroidRuntime( 3251): Caused by: android.content.res.Resources$NotFoundException: File res/drawable-xhdpi/ab_solid_shadow_holo.9.png from drawable resource ID #0x10800b9
E/AndroidRuntime( 3251): at android.content.res.BaiduResources.loadDrawableBaidu(BaiduResources.java:180)
E/AndroidRuntime( 3251): at android.content.res.BaiduResources.loadDrawable(BaiduResources.java:103)
E/AndroidRuntime( 3251): at android.content.res.TypedArray.getDrawable(TypedArray.java:606)
E/AndroidRuntime( 3251): at android.widget.FrameLayout.<init>(FrameLayout.java:109)
E/AndroidRuntime( 3251): at android.widget.FrameLayout.<init>(FrameLayout.java:97)
E/AndroidRuntime( 3251): ... 32 more
E/AndroidRuntime( 3251): Caused by: java.lang.ClassCastException: android.content.res.AssetManager cannot be cast to android.content.res.BaiduAssetManager
E/AndroidRuntime( 3251): at android.content.res.BaiduResources.loadDrawableBaidu(BaiduResources.java:168)
E/AndroidRuntime( 3251): ... 36 more
@phoenix19900219 有在模拟器上测试过吗?
@lomanyong 都是真机
@phoenix19900219 crash之后,再点开app都可以正常使用吗?
@phoenix19900219 华为的crash看着是百度系统的问题...有个BaiduAssets
。
@lomanyong 嗯, 这个是百度云OS, 这个每次启动都crash; 前面那两个启动不crash, 点击"去登录"按钮的时候crash
@lomanyong 前面那个应该和系统没关系, 我这边的手机都crash了
@lomanyong 你按我说的操作去做, 应该是可以重新的
@phoenix19900219 恩,刚刚复现了,需要进入那个 LoginActivity 才会 crash,我晚上找下原因。
@lomanyong 好的, 加油!
@phoenix19900219 问题找出来了,出现crash的原因应该是你们使用imeActionId
这个属性的时候直接引用了viewId
,但是实际上引用viewId
的时候,在 App 中处理回调函数时,回调的 id 会不正确,正确的处理方式应该是单独在资源文件中定义一个integer
属性,如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ime_action_id">100</integer>
</resources>
然后在EditText
中的imeActionId
中引用这个值,如:
<EditText
android:id="@id/password"
android:layout_width="match_parent"
android:layout_height="56dp"
android:imeActionLabel="@string/action_settings"
android:imeOptions="actionUnspecified"
android:imeActionId="@integer/ime_action_id"
android:hint="请输入密码"
android:inputType="textPassword" />
将imeActionId
的引用实际viewId的地方修改后即可正常增量资源编译。
可以参考如下链接:
@lomanyong , 的确是这个问题, 非常感谢 !!
执行python freeline.py -h命令时,报错
Traceback (most recent call last):
File "freeline.py", line 7, in
1#修改资源文件需重新全量生成,这个是正常的吗?否则就是爆edittext无法找到,奇怪。就是一个edittext,没什么其他东西呀,, 2@全量后自动运行的第一次就是会失败,然后手动打开就行了,然后就可以增量了,这个情况正常吗。、。。也是报错无法inflater到edittext,,醉了。