我确实有一个旧应用程序拒绝在 Android 4.1 设备上运行。跳到这里的是 NetworkOnMainThreadException。
所以我试图通过以下步骤来允许这一点 - 但这些不起作用。我用 4.1 模拟器测试过。解决该错误真正需要的是-应用程序重写是没有选择的。目前我从我的应用程序中排除 4.1 设备。
一个类文件...
public class StrictModeWrapper {
static {
try {
Class.forName("android.os.StrictMode");
} catch (Exception exception) {
throw new RuntimeException(exception);
}
}
public static void checkAvailable() {
}
@SuppressLint("NewApi")
public static void setThreadPolicy() {
StrictMode.ThreadPolicy strictModeThreadPolicy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(strictModeThreadPolicy);
}
}
...在扩展的应用程序类中调用:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
StrictModeWrapper.checkAvailable();
StrictModeWrapper.setThreadPolicy();
} catch (Throwable throwable) {
}
}
}
扩展的 Application 类在 Manifest 中注册并且正在工作。