当 android 支持库更新到 24 时,AlertDialog 生成器崩溃
Crash in AlertDialog builder when android support library updated to 24
代码之前运行良好,但是当我将支持库更新为 24 时,显示警告对话框时崩溃。
最近更新,找不到任何帮助。
代码:
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
。
因此,如果您在项目的任何地方有任何名为 android.support.v7.internal.widget.DialogTitle
的导入,请将其删除。
您需要为 AlertDialog 导入这个:
import android.app.AlertDialog;
而不是这个:
import android.support.v7.app.AlertDialog;
导入这个:
import android.app.AlertDialog;
代码之前运行良好,但是当我将支持库更新为 24 时,显示警告对话框时崩溃。 最近更新,找不到任何帮助。
代码:
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
。
因此,如果您在项目的任何地方有任何名为 android.support.v7.internal.widget.DialogTitle
的导入,请将其删除。
您需要为 AlertDialog 导入这个:
import android.app.AlertDialog;
而不是这个:
import android.support.v7.app.AlertDialog;
导入这个:
import android.app.AlertDialog;