private void strict (){
     StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
     StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
    }
上面这个方法,写在ACTIVITY里面,编译器报错:
        此行的多个标记
- Call requires API level 9 (current min is 8): new 
 android.os.StrictMode.ThreadPolicy.Builder
- Call requires API level 9 (current min is 8): 
 android.os.StrictMode.ThreadPolicy.Builder#detectDiskReads
- Call requires API level 9 (current min is 8): 
 android.os.StrictMode.ThreadPolicy.Builder#detectDiskWrites
- Call requires API level 9 (current min is 8): 
 android.os.StrictMode.ThreadPolicy.Builder#detectNetwork
- Call requires API level 9 (current min is 8): 
 android.os.StrictMode#setThreadPolicy意思好象是说我需要将项目的最小API级别从8调高到9,但我查了下,好象不能从低调到高,各位,该如何解决这个错误?如果调整API级别,该如何操作?多谢!api编译器minsdkversion

解决方案 »

  1.   

    解决了,各位,在网上搜到一个方案,不用调整minsdkversion 方法只需写成这样即可try {
            Class<?> strictModeClass = Class.forName("android.os.StrictMode", true, Thread.currentThread()
                    .getContextClassLoader());         Class<?> threadPolicyClass = Class.forName("android.os.StrictMode$ThreadPolicy", true, Thread
                    .currentThread().getContextClassLoader());         Class<?> threadPolicyBuilderClass = Class.forName("android.os.StrictMode$ThreadPolicy$Builder", true,
                    Thread.currentThread().getContextClassLoader());         Method setThreadPolicyMethod = strictModeClass.getMethod("setThreadPolicy", threadPolicyClass);         Method detectAllMethod = threadPolicyBuilderClass.getMethod("detectAll");
            Method penaltyMethod = threadPolicyBuilderClass.getMethod("penaltyLog");
            Method buildMethod = threadPolicyBuilderClass.getMethod("build");         Constructor<?> threadPolicyBuilderConstructor = threadPolicyBuilderClass.getConstructor();
            Object threadPolicyBuilderObject = threadPolicyBuilderConstructor.newInstance();         Object obj = detectAllMethod.invoke(threadPolicyBuilderObject);         obj = penaltyMethod.invoke(obj);
            Object threadPolicyObject = buildMethod.invoke(obj);
            setThreadPolicyMethod.invoke(strictModeClass, threadPolicyObject);     } catch (Exception ex) {
            Log.e("111", ex.getMessage());
        }