Android问题记录

1、安卓BLE

Android6.0以上系统,开发的app(targetSdkVersion为23或以上)在vivo,oppo,一加上搜索不到附近BLE设备,手机自带的设置-蓝牙下面是可以搜索到附近BLE设备的,其他品牌手机均可正常运行。

解决:

1、修改targetSdkVersion为23以下

2、打开系统的位置信息开关(判断GPS是否打开,未打开跳到系统设置位置信息)

2、加载大图片内存溢出

java.lang.OutOfMemoryError

at dalvik.system.VMRuntime.newNonMovableArray(Native Method)

at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)

at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:639)

at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:615)

at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:391)

at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:419)

        at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:419)

解决:

Try enabling large heap support, by adding this to your AndroidManifest.xml file:

<application android:largeHeap="true"

Also, you can reduce the memory required for your Bitmaps by using the Bitmap.Config type RGB_565 instead of ARGB_8888.

3、.so包报错

defaultConfig {

        ndk {

//Can't load vlcjni library: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/steelmate.com.iot_hardware-1/base.apk"],nativeLibraryDirectories=[/data/app/steelmate.com.iot_hardware-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libvlcjni.so"

            abiFilters "arm64-v8a","armeabi", "armeabi-v7a", "x86","x86_64"

        }

        applicationId "steelmate.com.equipment"

        minSdkVersion 19

        targetSdkVersion 21

        versionCode 2

        versionName "1.1"

        multiDexEnabled true

    }

.so导入方式:

1.静态导入,就是放在jnilibs目录

2.动态导入,放在asets目录,通过代码将其复制到app包名目录下,context.getFilesDir(),然后调用System.load(".so的绝对路径“”);

4、安卓多语言

安卓app增加了多语言切换,用application和activity的context获取的屏幕的方向和大小会有问题,有一篇多语言的文章已解决

5、vlc rtsp播放

安卓vlc播放,手机是竖屏时,vlc展示的宽高比为16:9显示没问题,横屏时,vlc的宽设为屏幕的宽,高设为屏幕的高,显示在屏幕上画面错乱

手机为横屏时,vlc展示的宽高比应该设为16:9,这时候画面就会正常

6、android fragment各种嵌套问题

有篇fragment各种嵌套的文章已解决

7、android dialog默认的遮盖颜色不能改变

直接让dialog全屏,在dialog的根布局设置前景自定义遮盖,有篇dialog的文章已解决

8、服务器更换了图片,android guide加载的还是缓存的图片

服务器更换了图片,却没有改变url,导致该问题

可以获取图片url的最后修改时间,为0就不加载图片,不为0就将时间戳设为guide加载图片的签名就可以解决该问题

9、android guide设置placeholder问题

在recyclerview中设置placeholder,recyclerview更新时图片会闪烁出placeholder设置的图片,所以不能设置placeholder,设置error就行

设置了placeholder就必须得设置dontAnimate,否则图片显示会不正常

10、dialog和activity状态栏显示不正常

有篇状态栏设置文章已解决

11、Gradle sync failed: Connection refused: connect

解决:

1、没有开代理,打开代理,auto-detect proxy settings

2、project目录下的gradle.properties中设置了Proxy代理所致,打开项目中的gradle.properties文件,查看其中是否有,删掉这些代码,就可以了。

systemProp.http.proxyHost=127.0.0.1

systemProp.http.proxyPort=1080

systemProp.https.proxyHost=127.0.0.1

systemProp.https.proxyPort=1080

3、查看C:\Users\Administrator\.gradle文件夹,看其中的gradle.properties文件中是否有和前述一样存在着代理设置的问题,这个属于系统级的Proxy代理设置,它对所有的工程项目有效,如果有代理设置的话也删除掉。删除这一部分代码,编译就正常了。

12、调用设置值的api,新版本的代码和过时的代码一起调用,调用返回值得api,新版本的代码和过时的代码判断版本来调用其中的一个

设置值:

public static Context updateLanguage(Context context) {

    Locale locale = getCurrentLocale(context);

    if (locale == null) {

        return context;

    }

    update(context, locale);

    //设置值的代码,高版本的代码和过时的代码一起执行

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {

        context = context.createConfigurationContext(context.getResources().getConfiguration());

        update(context, locale);

    }

    return context;

}

private static void update(Context context, Locale locale) {

    Resources      resources      = context.getResources();

    Configuration  configuration  = resources.getConfiguration();

    DisplayMetrics displayMetrics = resources.getDisplayMetrics();

    configuration.setLocale(locale);

    resources.updateConfiguration(configuration, displayMetrics);

}

返回值:

private static Locale getSystemLocale(Context context) {

    Locale locale;

    //返回值的代码,高版本的代码和过时的代码条件执行

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

        //7.0有多语言设置获取顶部的语言

        locale = context.getResources().getConfiguration().getLocales().get(0);

    } else {

        locale = context.getResources().getConfiguration().locale;

    }

    return locale;

}

13、Androidstudio中的文件显示错乱,但是在记事本中显示正常

关闭Androidstudio, 删除C:\Users\Administrator\.AndroidStudio3.5\system\caches中caches目录,然后打开Androidstudio

14、Androidstudio项目改名

项目名A改成B:项目根目录下的settings.gradle文件中的rootProject.name='A'改成rootProject.name='B',关闭项目并在Androidstudio中清除该项目,将项目的文件夹名称A修改成B,重新导入项目。

15、安卓蓝牙uuid解释

蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID、32 bit UUID、128 bit UUID。

但是熟悉安卓开发的小伙伴都知道接口都 UUID 格式,fromString 时候 16bit 的 UUID 该咋办呢?

16bit 和 32bit 的 UUID 与 128bit 的值之间转换关系:

128_bit_UUID = 16_bit_UUID * 2^96 + Bluetooth_Base_UUID

128_bit_UUID = 32_bit_UUID * 2^96 + Bluetooth_Base_UUID

其中 Bluetooth_Base_UUID 定义为 00000000-0000-1000-8000-00805F9B34FB

如果你想说这是啥呀,那我这样说你应该可以明白点:

若 16 bit UUID为xxxx,那么 128 bit UUID 为 0000xxxx-0000-1000-8000-00805F9B34FB

若 32 bit UUID为xxxxxxxx,那么 128 bit UUID 为 xxxxxxxx-0000-1000-8000-00805F9B34FB

16、Java中byte[]转String,再将字符串转成字节数组,与原始数组不一样

byte[] a = {0x25, 0x15, 0x25, (byte) 0xE8, (byte) 0x9B, 0x5C, 0x35, (byte) 0xF2};

String b = new String(a);

byte[] c = b.getBytes();

c的16进制字符串是251525EFBFBD5C35EFBFBD

解决:

byte[] a = {0x25, 0x15, 0x25, (byte) 0xE8, (byte) 0x9B, 0x5C, 0x35, (byte) 0xF2};

String b = new String(a,StandardCharsets.ISO_8859_1);

byte[] c = b.getBytes(,StandardCharsets.ISO_8859_1);

这是为什么呢?原因是第一种方法默认是用UTF-8编码来生成String的,用System.getProperty("sun.jnu.encoding")可以得到Android默认编码是UTF-8。UTF-8是可变长度的编码,原来的字节数组就被改变了。而ISO8859-1通常叫做Latin-1,Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符,其中 0~127的字符与ASCII码相同,它是单字节的编码方式,这样第二种方式生成的String里的字节数组就跟原来的字节数组一样。在new String使用其他编码如GBK,GB2312的话一样也会导致字节数组发生变化,因此要想获取String里单字节数组,就应该使用iso8859-1编码。

17、android APP无法使用http网络请求了

打开app/src/main目录下的AndroidManifest.xml文件,在application节点上添加android:usesCleartextTraffic="true"

18、Android Q报错The user 10129 does not meet the requirements to access device identifiers

设置targetVersion<29

19、Android MQTT异常

MqttException 无权连接

org.eclipse.paho.client.mqttv3.internal.exceptionhelper.createmqttexception(exceptionhelper.java:28)

org.eclipse.paho.client.mqttv3.internal.clientstate.notifyReceiveDack(clientstate.java:885)

org.eclipse.paho.client.mqttv3.internal.commsreceiver.run(commsreceiver.java:118)

原因:mqttClientId有问题,需要修改

20、Android Touch事件实现按钮的选择器效果

View view = new View(mActivity);

view.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

//设置点击后的效果

return true;

case MotionEvent.ACTION_UP:

//恢复到点击前的效果

{

//判断手指弹起时的位置是否在控件区域内,在区域内是点击,在区域外是取消

float x = event.getX();

float y = event.getY();

if (x >= 0) {

if (x <= v.getWidth()) {

if (y >= 0) {

if (y <= v.getHeight()) {

//执行目标代码

}

}

}

}

}

break;

case MotionEvent.ACTION_CANCEL:

//基本不会触发

break;

default:

break;

}

return false;

}

});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容