0
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
     .detectAll()
     .penaltyLog()
     .build();
 StrictMode.setThreadPolicy(policy);

我尝试了以下代码,但为找不到 ThreadPolicy 的类生成异常

#if UNITY_ANDROID
        using (AndroidJavaClass strictModeClass = new AndroidJavaClass("android.os.StrictMode"))
        {
            using (AndroidJavaClass threadpolicy = new AndroidJavaClass("android.os.StrictMode.ThreadPolicy"))
            {

                    AndroidJavaObject Builder = threadpolicy.Call<AndroidJavaObject>("Builder");
                    AndroidJavaObject permitall = Builder.Call<AndroidJavaObject>("permitAll");
                    AndroidJavaObject build = permitall.Call<AndroidJavaObject>("build");
                    strictModeClass.Call<AndroidJavaObject>("setThreadPolicy", build);

            }
        }
        #endif
4

1 回答 1

1

它根本无法在 Java 端找到该类。这可能是由于我的拼写错误,ProGuard 混淆了类名或包和插件与项目中未包含的类。

在您的情况下,您会收到“找不到类”异常,AndroidJavaClass("android.os.StrictMode.ThreadPolicy")因为ThreadPolicy不是包而是内部类,因此要区分这两者,您必须告诉 JRE 您正在寻找内部类,这可以通过替换在带有符号"."的内部类中。"$"

代替

AndroidJavaClass threadpolicy = new AndroidJavaClass("android.os.StrictMode.ThreadPolicy")

AndroidJavaClass threadpolicy = new AndroidJavaClass("android.os.StrictMode$ThreadPolicy");
于 2018-11-08T17:21:24.910 回答