错误1: java.io.IOException: Cleartext HTTP traffic to 包名 not permitted
原因分析:
从Android 6.0开始引入了对Https的推荐支持,与以往不同,Android P的系统上面默认所有Http的请求都被阻止了。
<application android:usesCleartextTraffic=["true" | "false"]>
原本这个属性的默认值从true改变为false
解决办法:
AnroidManifest.xml中的application显示设置
<application android:usesCleartextTraffic="true">
更为根本的解决办法是修改应用程序中Http的请求为Https,当然这也需要服务端的支持。
错误2: 在8.0之后前台服务使用startForegroundService()启动,需要权限
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
错误3:android 8.0 报错StartForeground Bad Notification Error 解决方法
在android8.0后 需要给notification设置一个channelid
public final static String channelName="cn.george.app";
mNotificationManager.createNotificationChannel(
new NotificationChannel(channelName,
"Channel One",
NotificationManager.IMPORTANCE_HIGH));
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this,channelName)
.setContent(remoteViews)
.setSmallIcon(R.mipmap.pic);
错误4:Android 8.0.0错误:Only fullscreen opaque activities can request orientation
原因:对activity的theme设置了
<--这个属性true不能和这个Activity指定屏幕方向同时使用-->
<item name="android:windowIsTranslucent">true</item>
8.0.0源码中
if (isTranslucentOrFloating) {
throw new IllegalStateException(
"Only fullscreen opaque activities can request orientation");
}
抛出了异常,会在8.0.0手机出现闪退,在8.0.0之后的版本8.0.1做了处理。
解决办法,item改为
如果非要使用这个属性true,那就不要指定屏幕的方向
<item name="android:windowIsTranslucent">false</item>
错误5:android.support.v4.app.Fragment.setMenuVisibility(boolean)' on a null object reference
android.support.v4.app.FragmentPagerAdapter.setPrimaryItem(Unknown Source:23)
原因:
在api25的时候:
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
Fragment fragment = (Fragment)object;
if (fragment != mCurrentPrimaryItem) {
if (mCurrentPrimaryItem != null) {
mCurrentPrimaryItem.setMenuVisibility(false);
mCurrentPrimaryItem.setUserVisibleHint(false);
}
if (fragment != null) {
fragment.setMenuVisibility(true);
fragment.setUserVisibleHint(true);
}
mCurrentPrimaryItem = fragment;
}
}
在api28的时候
public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
this.setPrimaryItem((View)container, position, object);
}
发现28的时候object标记了@NoNull不能为null。则否则null异常。
所以不能传null。