当android支持库更新为24时,AlertDialog构建器中崩溃 [英] Crash in AlertDialog builder when android support library updated to 24

查看:65
本文介绍了当android支持库更新为24时,AlertDialog构建器中崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

该代码以前运行良好,但是当我将支持库更新为24时,显示警报对话框时会崩溃. 找不到任何帮助,因为它最近已更新.

The code was working fine before, but when I updated support library to 24, It crashes when displaying alert dialog. Couldn't find any help as it is updated recently.

代码:

AlertDialog.Builder builderSingle;
builderSingle = new AlertDialog.Builder(mContext);
//set buttons and title code
builderSingle.show();

Logcat:

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.internal.widget.DialogTitle" on path: DexPathList[[zip file "/data/app/com.abc-2/base.apk"],nativeLibraryDirectories=[/data/app/com.abc-2/lib/arm, /data/app/com.abc-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
     at android.view.LayoutInflater.createView(LayoutInflater.java:583)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
     at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:80) 
     at android.support.v7.app.AlertController.installContent(AlertController.java:214) 
     at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257) 
     at android.app.Dialog.dispatchOnCreate(Dialog.java:394) 
     at android.app.Dialog.show(Dialog.java:295) 
     at android.support.v7.app.AlertDialog$Builder.show(AlertDialog.java:953) 
     at qi.mnav.search.fragments.RecentsFavouriteFragment.handleFavLongClick(RecentsFavouriteFragment.java:525) 
     at qi.mnav.search.fragments.RecentsFavouriteFragment.onItemLongClick(RecentsFavouriteFragment.java:353) 
     at android.widget.AbsListView.performLongPress(AbsListView.java:3134) 
     at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:3066) 
     at android.os.Handler.handleCallback(Handler.java:746) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5443) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
    Suppressed: java.lang.ClassNotFoundException: android.support.v7.internal.widget.DialogTitle
     at java.lang.Class.classForName(Native Method)
     at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
     at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
            ... 31 more

支持库为:

    compile('com.android.support:recyclerview-v7:24.0.0') {
        exclude group: 'com.android.support', module: 'support-v4'
    }
    compile('com.android.support:support-v4:24.0.0') {
        force = true
    }
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:design:24.0.0'

推荐答案

我认为您的导入存在一些问题.

例外:

java.lang.ClassNotFoundException: Didn't find class "android.support.v7.internal.widget.DialogTitle"

说它找不到DialogTitle,但是我在代码中的任何地方都没有看到DialogTitle.

says it is unable to find DialogTitle but i am not seeing DialogTitle any where in your code.

因此,如果您在项目中的任何位置都有任何名为android.support.v7.internal.widget.DialogTitle的导入,则将其删除.

So if you are having any import called android.support.v7.internal.widget.DialogTitle any where in your project then remove it.

您需要将其导入AlertDialog:

You need to import this for your AlertDialog:

 import android.app.AlertDialog;

代替此:

 import android.support.v7.app.AlertDialog; 

这篇关于当android支持库更新为24时,AlertDialog构建器中崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆