qq_43544413 2020-04-20 11:28 采纳率: 0%
浏览 414

关于钉钉授权的问题。有兴趣的来指点一下!

我想做一个钉钉授权登录的效果结果每次到授权登录界面的时候就报错,导致无法点击授权。
然后返回的授权码是空的。
报错日志如下:

:21:36.271 8797-8797/? W/System.err: java.lang.ClassNotFoundException: android.view.MiuiWindowManager$LayoutParams
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at java.lang.Class.classForName(Native Method)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at java.lang.Class.forName(Class.java:400)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at java.lang.Class.forName(Class.java:326)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.android.dingtalkui.activity.BaseUIActivity.setStatusBarFontForMiui(BaseUIActivity.java:540)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.android.dingtalkui.activity.BaseUIActivity.setupImmersiveStatusBar(BaseUIActivity.java:485)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.android.dingtalkui.activity.BaseUIActivity.setupImmersiveStatusBar(BaseUIActivity.java:471)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.android.dingtalkui.activity.BaseUIActivity.setupImmersiveStatusBar(BaseUIActivity.java:463)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.android.dingtalkui.activity.BaseUIActivity.setContentView(BaseUIActivity.java:294)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.android.dingtalkbase.DingtalkBaseActivity.setContentView(DingtalkBaseActivity.java:207)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.alibaba.lightapp.runtime.activity.CommonWebViewActivity.onCreate(CommonWebViewActivity.java:262)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.Activity.performCreate(Activity.java:6692)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2621)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2729)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.ActivityThread.-wrap12(ActivityThread.java)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1480)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.os.Looper.loop(Looper.java:154)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6169)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
2020-04-20 11:21:36.288 8797-8797/? W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.MiuiWindowManager$LayoutParams" on path: DexPathList[[zip file "/data/app/com.alibaba.android.rimet-1/base.apk"],nativeLibraryDirectories=[/data/app/com.alibaba.android.rimet-1/lib/x86, /data/app/com.alibaba.android.rimet-1/base.apk!/lib/x86, /data/user/0/com.alibaba.android.rimet/files/dso, /system/lib, /vendor/lib]]
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
2020-04-20 11:21:36.288 8797-8797/? W/System.err:   ... 22 more

请问我还需要配置什么吗?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-25 14:11
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,首先确保你的应用已经获取到了正确的权限,并且在AndroidManifest.xml中包含了必要的权限声明:

    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    

    然后,请确保你已经正确设置了android:configChanges属性以支持屏幕方向变化、宽度和高度的变化以及密度级别的改变。这将允许你的应用根据用户设置调整其外观和行为。例如,在AndroidManifest.xml文件中添加以下属性:

    <application
        ...
        android:configChanges="orientation|screenSize"
        android:theme="@style/AppTheme">
    </application>
    

    此外,检查你的应用是否已经在适配器或活动类中正确处理了权限请求。通常情况下,你需要在这些位置调用checkSelfPermission()方法并处理相应的权限状态。如果用户拒绝了权限请求,你应该考虑如何处理这种情况,比如显示一个通知或者提示信息。

    以下是可能的解决方案:

    1. 使用回调函数:当权限被请求时,你可以通过回调函数处理用户的决策。例如,可以在onRequestPermissionsResult方法中执行一些逻辑。
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == MY_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 用户已同意权限请求
            // 在这里可以继续进行其他操作
        } else {
            // 用户未同意权限请求
            // 这里应该有适当的错误处理和用户反馈机制
        }
    }
    
    1. 自定义权限管理器:如果你的应用是一个多任务或多进程环境中的子应用,你可能需要创建自己的权限管理器来提供更灵活的权限控制策略。这包括为每个应用程序实例独立地决定是否允许访问特定功能。

    2. 使用第三方库:有一些库可以帮助你在不修改源代码的情况下实现类似的权限管理功能。例如,PermissionsFragment提供了方便的方法来处理权限请求和响应。

    // 使用 PermissionsFragment
    new PermissionsFragment().show(getSupportFragmentManager(), PermissionsFragment.class.getName());
    

    请注意,处理权限请求时务必谨慎,避免不必要的权限请求和过度收集用户数据的行为。

    评论

报告相同问题?