卓开发中遇到问题记录贴(二)"/>
安卓开发中遇到问题记录贴(二)
1、PictureSelector
打开相册空白页-图片不显示
glide更新到对应版本
2、http请求失败
使用Nohttp请求接口时候低版本手机正常,高版本手机一直提示请求失败
完美解决Android 9.0以上HTTP网络请求被限制问题
- 查看使用的http方式请求还是Https
- 安卓9.0以上系统对Http方式进行了限制
- 需要在清单文件<Application中加入
android:usesCleartextTraffic="true"
android:usesCleartextTraffic
指示应用程序是否打算使用明文网络流量,例如明文HTTP。
3、使用post进行raw类型数据请求
http数据请求有from-data和raw请求
其中from-data就是常见的键值对请求
raw接口请求常要求:
所有的接口要求:
⚫采用 POST 提交
⚫ CotentType: application/json
即提交的接口数据需要时json串形式
var putPositionNum7="2,5,8"val obj = JSONObject()var jsonArray=JSONArray()var list_pins= putPositionNum7.split(",")list_pins.forEach {jsonArray.put(it)}obj.put("laneNumber", ced_seven.text.toString())obj.put("startType", startType7)obj.put("pins",jsonArray)obj.put("status",statue7)var json=obj.toString()
获取json:
{“laneNumber”:“4”,“startType”:“0”,“pins”:[“2”,“5”,“8”],“status”:“2”}
其中我是用的网络请求方式为nohttp框架:
框架提供raw方法为:
mRequest.setDefineRequestBodyForJson(json)
4、安卓应用对接应用宝微下载
安卓清单文件在需要被拉起的页面下设置scheme:
<activityandroid:name=".ui.guide.AdvertisementActivity"android:launchMode="singleTask"android:theme="@style/launcher"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><!-- 关于微下载--><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="aigeeducationweekup" /></intent-filter></activity>
由于我这里跳转的是启动页,已有自己的< intent-filter> 所以在设置scheme的时候需要新建一个< intent-filter> 否则会出现运行手机页面找不到应用logo的情况
- BROWSABLE的意思就是浏览器在特定条件下可以打开你的activity
然后下一步,设置应用宝开发平台的scheme信息: - 这一步需要注意:平台上添加的scheme需要添加后缀:// 即:
你的scheme值://
5、Android Studio 3.4.1中对ViewPager和TabLayout的更新
(此处为studio更新后修改老项目时候代码报错时候遇到的问题记录)
com.android.support.v4.view.ViewPager
提示不存在该类或程序闪退
Android Studio在新的版本中对android.support中的内容进行了更新。com.android.support.v4.view.ViewPager
变成了androidx.viewpager.widget.ViewPager
。程序可以正常运行- Android Studio 3.4.1中
android.support.design.widget.TabLayout
改为com.google.android.material.tabs.TabLayout
7、安卓实现滑动退出使用SwipeBackActivity (示例见扬灵教育用户端)
使用示例
BaseActivity
继承SwipeBackActivity
默认允许,设置不允许使用setSwipeBackEnable(false)
//是否允许滑动退出
8、安卓10.0保存图片到本地(参考美魔镜appAI换脸页面)
使用示例
9、安卓10.0中QQ分享失败(Android 10存储权限问题)
在清单文件application中加入android:requestLegacyExternalStorage="true"
使用示例
10、平板开发过程中遇到的问题
- 适配问题
使用screen match
或者autosize
(具体使用方法详见百度)
布局的适配记得要尽量使用权重
11、Android 8.0 QQ分享失败
12、蓝牙
13、腾讯IM
腾讯聊天界面 图片和视频不显示缩略图
glide的问题
imageview.setImageURI(Uri.fromFile(new File(这里填路径字符串)));
14、设置Tablayout默认选中后 不会自动滚动
//使滚动
Thread{Thread.sleep(500)val vg =tablayout_index.getChildAt(0) as ViewGroupvar tabLayoutWidth = 0var temp: View?for (i in 0 until index) {temp = vg.getChildAt(i)if (temp != null) {tabLayoutWidth += temp.width}}tablayout_index.smoothScrollTo(tabLayoutWidth, 0)
}.start()
注意:每个tab的宽度要用(tablayout_index.getChildAt(0) as ViewGroup).getChildAt(i) .width
15、微信第三方平台应用签名:
MD5去掉冒号大写改小写
16、将Edittext设置光标位于末尾
edittext.setSelection(1)//将光标移至文字末尾
17、Android TV开发
请参考《安卓Studio开发TV项目记录》
18、安卓studio连接不上模拟器
打开studio中的Terminal输入对应的信息:
夜神模拟器:adb connect 127.0.0.1:62001逍遥安卓模拟器:adb connect 127.0.0.1:21503天天模拟器:adb connect 127.0.0.1:6555 海马玩模拟器:adb connect 127.0.0.1:53001网易MUMU模拟器:adb connect 127.0.0.1:7555原生模拟器:adb connect (你的IP地址):5555
19、安卓10.0 使用Glide加载图片一直有的显示有的不显示
清单文件添加:
android:usesCleartextTraffic="true"android:requestLegacyExternalStorage="true"
更多推荐
安卓开发中遇到问题记录贴(二)
发布评论