Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android 开发中你遇到过哪些兼容性问题?都是怎么解决的? #2

Open
Trinea opened this issue Mar 13, 2015 · 27 comments

Comments

@Trinea
Copy link
Member

Trinea commented Mar 13, 2015

@jasonross 提供,由于开源三方定制系统较多,方便的话,请大家详细描述场景、机型及解决方案,方便其他朋友参考

@jasonross
Copy link

场景:使用MIPush,在华为部分手机上无法推送成功。
机型:[华为P6,华为P7]
解决方案:P6和P7是华为的高端机型,不允许推送,防止骚扰用户,无解。

@bingoogolapple
Copy link

场景

魅族手机ListView的Item中的EditText无法编辑,点击EditText弹出软键盘后,软键盘会立即自动隐藏

机型

魅族3和魅族4

解决方案

将ListView换成RecyclerView

@sfshine
Copy link

sfshine commented Mar 14, 2015

场景:HTC M8 从一个Activity 使用QQSDK 登陆, 登陆成功后, 返回Activity结果Activity 被销毁了
机型:HTC M8 等某些带有 虚拟 Menu 键盘的手机
解决方案:后来调查发现是这个Activity是全屏,屏蔽了Menu键盘的黑条. 但是跳转到QQ却把那个Menu的黑条显示了出来, 这导致发生了 screenSize 的变化 从而导致我的Activity销毁了.
知道了这个原因, 在manifest中的 configChanges 添加screenSize 解决了这个问题.

@shaobin0604
Copy link

@jasonross 找到 root cause 了么?

不允许推送的意思是

  • push 服务进程无法启动?
  • push 服务进程发送的广播,接收端收不到 ?

可否详细一点?

@jasonross
Copy link

@shaobin0604 不知道具体怎么做的,华为客服说不允许这两款机型推送。

@LeoShangPeng
Copy link

双卡双待手机电话适配,还是有问题有待解决。

@ls1110924
Copy link

场景:Android4.4系统使用了SystemBarTintManager库修改透明状态栏后,会导致根布局从屏幕顶端开始布局,而不是从ActionBar开始布局
机型:所有android4.4机型
解决方案:针对4.4创建一套额外的布局,即layout-v19文件夹,并且在根布局外层再套一层LinearLayout,并在LinearLayout中添加一个属性android:fitsSystemWindows="true"

@zourb
Copy link

zourb commented Mar 24, 2015

@bingoogolapple 魅族手机这个问题用ListView实现有其他解决方案吗?

@bingoogolapple
Copy link

@zourb 没 😥 ,都换成RecyclerView了

@chdahuzi
Copy link

魅族MX3
Camera拍摄,用setPreviewFormat设置成YV12,预览会变成绿屏,实际用getPreviewFormat显示是支持YV12的
没办法只能设置成NV21了

@leiweibo
Copy link

在4.2的版本以及之前里面设置actionbar透明度无效

解决方案:
在Build.VERSION.SDK_INT <= 18的版本中,通过colorDrawable.setAlpha(alpha);设置actionbar背景色透明度的时候,colorDrawable需要设置callback。

 final Drawable.Callback mDrawableCallback = new Drawable.Callback() {
        @Override
        public void invalidateDrawable(Drawable who) {
            getActionBar().setBackgroundDrawable(who);
        }

        @Override
        public void scheduleDrawable(Drawable who, Runnable what, long when) {
        }

        @Override
        public void unscheduleDrawable(Drawable who, Runnable what) {
        }
    };

colorDrawable.setCallback(mDrawableCallback);

@tankcong
Copy link

tankcong commented Jul 3, 2015

Android 2.3新加入的系统服务DownloadManager/DownloadProvider中的BUG,表示是会收到两条下载结束的广播,同时本次本已下载成功的文件变为0KB(删掉后FileOutputStream新建了个空文件)。
原因:
DownloadService并发通知不及时导致下载超出范围错误(HTTP 416)。DownloadThread下载完成后通知DownloadDB再通过Observer通知上层DownloadManager,几率出现在下载完成的一瞬间DownloadManager在DB内下载状态改变之前先获得到下载完成通知,触发DownloadThread错误地进行断点下载造成HTTP416错误,DownloadThread继续认为下载失败并删除已下载文件。
解决办法:
在DownloadThread/DownloadService增加全局锁,此问题在4.1.x被官方修复,官方修改的方案基本相同。

@android-feng
Copy link

问题

Android 自定义Perference的时候,系统默认的Perference里Layout的默认值都被厂商改动了。。。一般设计到统一取值的时候,Google都用"?android:attrs。。。。"的格式,但是[Google源码](http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/frameworks/base/core/res/res/layout/preference.xml)在此处用了数值,中间title的margin值所有厂商都有变动,导致自定义的Perference和默认的显示不齐

解决

因为App的用户机型比较杂,hack的方法比较不适用,故粘贴Google源码,自己重新封装, 自己统一

@ls1110924
Copy link

PopupWindow中嵌套EditText,会出现EditText长按无法触发“粘贴”选项,可以改成Dialog嵌套EditText,包括DialogFragment。

@Dev-Wiki
Copy link

关于息屏亮屏,三星Note系列,S系列会调用Activity的onPause和onStop方法.其他手机会保持在onResume状态

@jasonross
Copy link

@Aspsine
Copy link

Aspsine commented Oct 2, 2015

@zourb
@bingoogolapple
魅族手机上面listview 中edittext的问题我解决了。如果需要我可以提供一个demo。

@Lujango
Copy link

Lujango commented Oct 10, 2015

@Aspsine 思路是什么啊,也遇到这个问题 还是expandlistview

@Aspsine
Copy link

Aspsine commented Oct 11, 2015

@Ljango

花了两小时撸了个小demo。希望能帮到你。

https://github.com/Aspsine/EditTextInListView

@epolar
Copy link

epolar commented Oct 15, 2015

@ls1110924 SystemBarTintManager4.4我的解决方法是为4.4及以上添加了paddingTop去适配,添加layout觉得不好适配。

@mackkill
Copy link

Coolpad 8720L
在获取系统相机拍照然后保存在本地有时候会保存不上,获取不到地址。
问题原因:通过调试发现当拍完照返回的时候自己设的成员变量值会被回收,估计就是内存不足的原因。重启机器后就好了。至于代码上的优化还没想到好的解决方案。

@voidhug
Copy link

voidhug commented Dec 11, 2015

输入法中的emoji适配,Android4.1之前的系统不支持emoji显示,所以对于Android4.1之前的系统,我采用了bitmap来显示emoji。

@cpp255
Copy link

cpp255 commented Mar 18, 2016

三星手机
问题:APP Activity A调用系统拍照 --> 拍照 --> 在拍好照片的界面做几次横竖屏转换 --> 返回APP界面Activity A ,A 被销毁。
解决: 在csdn上找到的:http://blog.csdn.net/aaawqqq/article/details/37034243 在AndroidManifest.xml中添加

发现是

screenSize

起作用

@shaobin0604
Copy link

问题

OPPO 手机启动 ServiceSecurityException

机型

OPPO

解决

try catch 该异常

参考

@yanxinmiao
Copy link

yanxinmiao commented Jan 16, 2018

求 App创建快捷方式的 方案
通过发广播的方式,在小米、华为、vivo上创建不了,小米是上测试提示:禁止使用创建快捷方式权限 。现在查到点眉目就是通过AppOpsManager判断有没有这个权限,没有可以调到App设置页面 ,至于华为、vivo没有找到好的办法。

@shaobin0604
Copy link

android.webkit.WebView 泄漏 Activity,影响不少 vivo/meizu 5.x 的设备。

详细说明及解决方法见 Android 5.1 WebView内存泄漏问题及解决

@stevenwsg
Copy link

求 App创建快捷方式的 方案 通过发广播的方式,在小米、华为、vivo上创建不了,小米是上测试提示:禁止使用创建快捷方式权限 。现在查到点眉目就是通过AppOpsManager判断有没有这个权限,没有可以调到App设置页面 ,至于华为、vivo没有找到好的办法。

2024年了, 已经6年过去了, 我也遇到了这个问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests