首页 新闻 会员 周边

安卓程序运行在6.0版本上出错

0
悬赏园豆:15 [已解决问题] 解决于 2018-08-16 18:37

提示信息里有如下提示.看不太懂,有大佬可以帮忙看看嘛

Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable

劉亞坤的主页 劉亞坤 | 初学一级 | 园豆:15
提问于:2018-08-04 17:08
< >
分享
最佳答案
1

https://stackoverflow.com/questions/42060702/before-android-4-1-method-android-graphics-porterduffcolorfilter-would-have

Android used to run on Dalvik VM.

Dalvik had a bug allowing classes to override parent's package-private methods.

So when they switched to ART, they fixed this, so it no longer overrides the parent's method, Now when such a scenario is detected, it logs a warning, making sure you're aware of the behavior change.

It seems that some support-lib classes (PorterDuffColorFilterVectorDrawableCompat) have such scenario, so ART notifies you.

I think it's safe to ignore this, unless this is your own code, in which case I would either change the method's name, or test on Android running Dalvik (pre-4.1) and running ART (4.1+)

收获园豆:15
2012 | 高人七级 |园豆:21230 | 2018-08-06 08:52

Thank you for your kind help. My problem may be where the permission is granted, but the strange thing is that when I run android 7.0/8.0, my program is ok, but when I run 6.0, there is a problem.My solution is to change targetSdkVersion to targetSdkVersion 22, when the permission request interface will not pop up, and my program will have no problem, but I am very puzzled, why is there no problem on 7.0/8.0, could you please help me to solve it?Please forgive me for the poor grammar of this passage, which is translated by the dictionary.Below is my permission request code.

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED)
{
//用户已经拒绝过一次,再次弹出权限申请对话框需要给用户一个解释
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission
.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(this, "我只要读写权限,真的,不多要!", Toast.LENGTH_SHORT).show();
}
//申请权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},200);

    } else {
        Toast.makeText(this, "读写权限没问题,OVER!", Toast.LENGTH_SHORT).show();
    }
劉亞坤 | 园豆:15 (初学一级) | 2018-08-06 09:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册