技术 · 阅读记录
2017年中遇到的工具/编程问题汇总
正则表达式中的常见问题集锦
1、在后顾(lookbehind)中使用后向引用(backreference )
1
System.out.println(str.replaceAll("(.)(?<=a{1,4}\\1)", ""));
out:
1
2
3
4
5
6
7
8
9
10
11
12
Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 14
(.)(?<=a{1,4}\1)
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.group0(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at com.stackoverflow.fxleyu.RegexMain.main(RegexMain.java:x)
SVN操作时,遇到“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作”提示错误
依据[SVN_ERROR],查看了电脑socket端口使用情况,发现某一进程大量持有连接,手动杀了该进程,可以正常使用SVN了。
1
NETSTAT -ano
使用adb install -r重新安装应用时,报[INSTALL_FAILED_MISSING_SHARED_LIBRARY]错误
这是由于在 AndroidManifest.xml 文件中,使用了uses-library属性导致,可以移除该属性或者设置其为false。
如下[MISSING_LIBRARY][USES_LIBRARY]:
1
2
3
<uses-library
android:name="com.xxx.xx.xxx"
android:required="false"/>
ListView 中 AdapterView.OnItemClickListener 不会被回调
由于ListView中有CheckBox组件,一直以为是事件分发导致,最后发现ListView未注册监听器。对自己醉了。
关于ListView的子项中有CheckBox组件,只需要把CheckBox设置android:focusable="false"即可,为了更好的处理事件,也做了android:clickable="false"设置。
修改的代码如下:
1
2
3
4
5
6
7
8
9
10
11
<CheckBox
android:id="@+id/item_select_checkbox"
android:layout_width="wrap_content"
android:layout_height="52px"
android:focusable="false"
android:clickable="false"
android:button="@drawable/btn_select"
android:gravity="center_vertical"
android:paddingRight="8px"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
[Android] 自定义Notification导致的RemoteServiceException
该问题是由于在RemoteViews布局文件中使用View组件导致,解决文档remote_views_error。
RemoteViews是不支持View的。
故障异常信息如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
09-14 10:01:42.788: E/AndroidRuntime(453): FATAL EXCEPTION: main
09-14 10:01:42.788: E/AndroidRuntime(453): Process: com.android.ztemms, PID: 453
09-14 10:01:42.788: E/AndroidRuntime(453): android.app.RemoteServiceException: Bad notification posted from package com.android.ztemms: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.android.ztemms user=UserHandle{0} id=2147483647 tag=null score=0 key=0|com.android.ztemms|2147483647|null|10009: Notification(pri=0 contentView=com.android.ztemms/0x1090079 vibrate=null sound=null defaults=0x0 flags=0x0 color=0x00000000 category=msg vis=PRIVATE))
09-14 10:01:42.788: E/AndroidRuntime(453): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1466)
09-14 10:01:42.788: E/AndroidRuntime(453): at android.os.Handler.dispatchMessage(Handler.java:102)
09-14 10:01:42.788: E/AndroidRuntime(453): at android.os.Looper.loop(Looper.java:153)
09-14 10:01:42.788: E/AndroidRuntime(453): at android.app.ActivityThread.main(ActivityThread.java:5254)
09-14 10:01:42.788: E/AndroidRuntime(453): at java.lang.reflect.Method.invoke(Native Method)
09-14 10:01:42.788: E/AndroidRuntime(453): at java.lang.reflect.Method.invoke(Method.java:372)
09-14 10:01:42.788: E/AndroidRuntime(453): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
09-14 10:01:42.788: E/AndroidRuntime(453): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
09-14 10:10:36.598: E/StatusBar(4482): couldn't inflate view for notification com.android.ztemms/0x3039
09-14 10:10:36.598: E/StatusBar(4482): android.view.InflateException: Binary XML file line #71: Error inflating class android.view.View
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.createView(LayoutInflater.java:633)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:665)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
09-14 10:10:36.598: E/StatusBar(4482): at android.widget.RemoteViews.apply(RemoteViews.java:2615)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.systemui.statusbar.BaseStatusBar.inflateViews(BaseStatusBar.java:1429)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.systemui.statusbar.BaseStatusBar.inflateViews(BaseStatusBar.java:1340)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.systemui.statusbar.BaseStatusBar.createNotificationViews(BaseStatusBar.java:1817)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.systemui.statusbar.phone.PhoneStatusBar.addNotification(PhoneStatusBar.java:1622)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.systemui.statusbar.BaseStatusBar$5$2.run(BaseStatusBar.java:457)
09-14 10:10:36.598: E/StatusBar(4482): at android.os.Handler.handleCallback(Handler.java:743)
09-14 10:10:36.598: E/StatusBar(4482): at android.os.Handler.dispatchMessage(Handler.java:95)
09-14 10:10:36.598: E/StatusBar(4482): at android.os.Looper.loop(Looper.java:153)
09-14 10:10:36.598: E/StatusBar(4482): at android.app.ActivityThread.main(ActivityThread.java:5254)
09-14 10:10:36.598: E/StatusBar(4482): at java.lang.reflect.Method.invoke(Native Method)
09-14 10:10:36.598: E/StatusBar(4482): at java.lang.reflect.Method.invoke(Method.java:372)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
09-14 10:10:36.598: E/StatusBar(4482): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
09-14 10:10:36.598: E/StatusBar(4482): Caused by: android.view.InflateException: Binary XML file line #71: Class not allowed to be inflated android.view.View
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.failNotAllowed(LayoutInflater.java:647)
09-14 10:10:36.598: E/StatusBar(4482): at android.view.LayoutInflater.createView(LayoutInflater.java:595)
09-14 10:10:36.598: E/StatusBar(4482): ... 21 more