- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的 Android 项目中,我最初的目标是 Android 6,并且一切都运行正常。
现在我在 Android 4.4 设备(真实设备和 AVD)上运行它,它因 IllegalAccessException 崩溃。
这就是崩溃的地方
this.PractitionerList.add(new
PractitionerItem(1, "01A1234E", "Mary", "1st", "London", "Y")
);
PractitionerItem是一个公共(public)类,PractitionerList是一个像这样声明的数组列表
this.PractitionerList = new ArrayList();
这是日志猫......
<小时/>08-08 02:47:05.491 2637-2637/org.nmc_uk.www.thenmc I/FirebaseInitProvider: FirebaseApp initialization unsuccessful 08-08 02:47:05.561 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable > to find class referenced in signature (Landroid/view/SearchEvent;) 08-08 02:47:05.561 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested 08-08 02:47:05.561 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve interface method 19611: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z 08-08 02:47:05.561 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 08-08 02:47:05.571 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode 08-08 02:47:05.571 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve interface method 19615: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 08-08 02:47:05.571 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 08-08 02:47:05.891 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations 08-08 02:47:05.891 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve virtual method 649: Landroid/content/res/TypedArray;.getChangingConfigurations ()I 08-08 02:47:05.891 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 08-08 02:47:05.891 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType 08-08 02:47:05.891 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve virtual method 671: Landroid/content/res/TypedArray;.getType (I)I 08-08 02:47:05.911 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 08-08 02:47:06.071 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: GC_FOR_ALLOC freed 141K, 7% free 2923K/3112K, paused 51ms, total 51ms 08-08 02:47:06.071 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm-heap: Grow heap (frag case) to 3.502MB for 635808-byte allocation 08-08 02:47:06.091 2637-2646/org.nmc_uk.www.thenmc D/dalvikvm: GC_FOR_ALLOC freed 1K, 6% free 3542K/3736K, paused 16ms, total 16ms[ 08-08 02:47:06.301 2637: 2637 D/ ]HostConnection::get() New Host Connection established 0xb903efa0, tid 2637 08-08 02:47:06.421 2637-2637/org.nmc_uk.www.thenmc D/OpenGLRenderer: Enabling debug mode 0 08-08 02:47:13.121 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable 08-08 02:47:13.121 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve virtual method 612: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 08-08 02:47:13.121 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 08-08 02:47:13.121 2637-2637/org.nmc_uk.www.thenmc I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity 08-08 02:47:13.121 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve virtual method 614: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 08-08 02:47:13.121 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 08-08 02:47:13.161 2637-2637/org.nmc_uk.www.thenmc D/---:: listView.setOnItemClickListener 08-08 02:47:15.021 2637-2637/org.nmc_uk.www.thenmc I/Choreographer: Skipped 110 frames! The application may be doing too much work on its main thread. 08-08 02:47:16.841 2637-2637/org.nmc_uk.www.thenmc D/---:: Inserting .. 08-08 02:47:16.841 2637-2637/org.nmc_uk.www.thenmc E/dalvikvm: Could not find class 'org.nmc_uk.www.thenmc.PractitionerItem$1', referenced from method org.nmc_uk.www.thenmc.PractitionerItem. 08-08 02:47:16.841 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: VFY: unable to resolve new-instance 9673 (Lorg/nmc_uk/www/thenmc/PractitionerItem$1;) in Lorg/nmc_uk/www/thenmc/PractitionerItem; 08-08 02:47:16.841 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: VFY: replacing opcode 0x22 at 0x0000 08-08 02:47:16.841 2637-2637/org.nmc_uk.www.thenmc D/dalvikvm: DexOpt: unable to opt direct call 0xfe57 at 0x02 in Lorg/nmc_uk/www/thenmc/PractitionerItem;. 08-08 02:47:16.901 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lorg/nmc_uk/www/thenmc/PractitionerItem; 08-08 02:47:16.901 2637-2637/org.nmc_uk.www.thenmc D/AndroidRuntime: Shutting down VM 08-08 02:47:16.901 2637-2637/org.nmc_uk.www.thenmc W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xb2d53b20) 08-08 02:47:18.551 2637-2637/org.nmc_uk.www.thenmc E/AndroidRuntime: FATAL EXCEPTION: main Process: org.nmc_uk.www.thenmc, PID: 2637 java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275) at android.view.View.performClick(View.java:4438)
这就是类(class)......
package org.nmc_uk.www.xxxxx;
import android.os.Parcel;
import android.os.Parcelable;
public class PractitionerItem implements Parcelable {
Integer PRN;
String PIN;
String Fname;
String Lname;
String Town;
String YesNo;
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel (Parcel dest, int flags) {
dest.writeInt(PRN);
dest.writeString(PIN);
dest.writeString(Fname);
dest.writeString(Lname);
dest.writeString(Town);
dest.writeString(YesNo);
}
private PractitionerItem(Parcel in){
this.PRN = in.readInt();
this.PIN = in.readString();
this.Fname = in.readString();
this.Lname = in.readString();
this.Town = in.readString();
this.YesNo = in.readString();
}
public static final Creator<PractitionerItem> CREATOR = new Creator<PractitionerItem>() {
@Override
public PractitionerItem createFromParcel(Parcel source) {
return new PractitionerItem(source);
}
@Override
public PractitionerItem[] newArray(int size) {
return new PractitionerItem[size];
}
};
public PractitionerItem(Integer PRN, String PIN, String Fname, String Lname, String Town, String YesNo){
this.PRN = PRN;
this.PIN = PIN;
this.Fname = Fname;
this.Lname = Lname;
this.Town = Town;
this.YesNo = YesNo;
}
}
.....以及调用它的类中的这个(主要部分)...
<小时/>Public class SearchTheRegister extends AppCompatActivity {
private ArrayList<PractitionerItem> PractitionerList;
private CustomAdapter practitioner_adapter;
.
.
.
//// THIS LINE IS WHERE IT FAILS ///////////////
this.PractitionerList.add(new
PractitionerItem(1, "01A1234E", "Mary", "1st", "London", "Y")
);
有什么想法吗?
山姆
最佳答案
我不确定这是否能解决您的问题,但我有类似的问题,并且我意识到我的可包裹实现是错误的。我在下面为您重新生成了一个可打包的实现:
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(this.PRN);
dest.writeString(this.PIN);
dest.writeString(this.Fname);
dest.writeString(this.Lname);
dest.writeString(this.Town);
dest.writeString(this.YesNo);
}
public PractitionerItem() {
}
protected PractitionerItem(Parcel in) {
this.PRN = (Integer) in.readValue(Integer.class.getClassLoader());
this.PIN = in.readString();
this.Fname = in.readString();
this.Lname = in.readString();
this.Town = in.readString();
this.YesNo = in.readString();
}
public static final Creator<PractitionerItem> CREATOR = new Creator<PractitionerItem>() {
@Override
public PractitionerItem createFromParcel(Parcel source) {
return new PractitionerItem(source);
}
@Override
public PractitionerItem[] newArray(int size) {
return new PractitionerItem[size];
}
};
如果这不起作用,您可以尝试向您的应用添加 MultiDex
支持。关于 Kitkat
、ArrayList
和 Parcelable 存在一个奇怪的问题。
添加多重分包支持:
首先更改你的 gradle,如下所示:
android {
defaultConfig {
...
multiDexEnabled true
...
}
}
dependencies {
...
compile 'com.android.support:multidex:1.0.0'
...
}
第二次从 Multidex 应用程序扩展您的应用程序或在 OnCreate
中调用 Multidex.init
:
public class YourApplication extends MultiDexApplication
{
...
}
或
public class YourApplication extends Application
{
protected void attachBaseContext(Context base)
{
super.attachBaseContext(base);
MultiDex.install(this);
}
}
如果这些解决方案不起作用,请告诉我,让我们尝试找出新的解决方案。
祝你好运。
关于java - Android Studio 中的 IllegalAccessException 目标 android 为 4.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38742907/
我经常使用 SSMS 查询数据和构建数据集,我的 IT 部门负责数据库管理。 最近我发现了 Azure Data Studio,我喜欢: 智能感知 源代码控制(例如使用 Git) 来自社区的扩展 SQ
我想根据我使用的 visual studio 版本编译不同的东西,比如 #if VISUAL_STUDIO_VERSION > 2015 eventH?.Invoke(this, EventArgs.
我们的开发团队计划从 visual studio 2005 升级到 visual studio 2010 -- 跳过 visual studio 2008。 大部分项目是VB ASP.NET项目,使用
我的Visual Studio 2015无法构建2010平台工具集。它说: The build tools for Visual Studio 2010 (v100) cannot be found.
我目前正在使用 Visual Studio 2015 来编程 ASP.NET Core 应用程序。我对安装 Visual Studio 2017 有以下疑问: 什么被认为是最佳实践和/或最干净的方法?
尝试从扩展和更新获取 Visual Studio 扩展时,出现以下错误:- 向 visualstudiogallery.msdn.microsoft.com/Services/VStudio/Exte
这个问题在这里已经有了答案: Can Visual Studio Code and VS 2012 be installed on same computer? (1 个回答) 关闭去年。 在安装了
作为标准安装的一部分,Visual Studio Code 带有一个名为“Monokai Dimmed”的颜色主题。 有没有办法将它移植到 Visual Studio 2015?我检查了社区主题( h
我想开始编程 CUDA。 我已经安装了 Visual Studio 2010 Express。 我还安装了 nVidia nSight Visual Studio。 而且我具备所有常见的先决条件(Ne
Visual Studio Community Edition是否可以使用Visual Studio Online帐户上的存储库? 我一直为包含在Online帐户中的Visual Studio Onl
我有一个我一直在开发的应用程序,但在 android studio 上遇到了问题。当我点击“build->run”然后选择我的设备时,应用程序永远不会在我的手机上运行(并且自动出现的android-s
我正在使用Visual Studio2010。我面临的一个问题是,当我创建一个新的Web项目时,Visual Studio将创建该项目,并且不会在解决方案资源管理器中显示其解决方案。 另一件事是,我想
我通读了这里的许多帖子,却找不到一个有效的明确答案。因此,在花了一些时间使它生效之后,我认为应该发布它。 问题:发布配置文件将建立在服务器上,但不会发布。 解: 确保已安装Microsoft Wind
我正在尝试使用Visual Studio 2012构建针对.NET 3.5的C++ CLI应用程序。 通过安装Visual Studio 2008,并指定v90平台工具集,我已经在一台机器上进行了这项
我在 Microsoft Visual Studios 2013 中有一个项目,我想在 Microsoft Visual Studios 2010 中打开它。有什么简单的方法吗?还是我必须在2010年
我想知道,如果我发送一个解决方案文件夹(它是用 visual studio C# 编写的),您可以在 visual studio for mac 中打开解决方案吗? 在visual studio 20
有没有办法在 Visual Studio Code 和 Visual Studio 中设置相同的快捷方式(而不必每次都手动更改它们)? 例如,我在 Visual Studio Code 中经常使用 A
我刚开始了解 Visual Studio Code。我想知道,我可以将 Visual Studio 替换为所有 .NET 开发相关的工作吗? 我可以节省 Visual Studio 许可的成本吗? V
我安装了具有有效许可证(Visual Studio 订阅)的 Visual Studio 2019 企业版(VS 2019 16.1.4),它运行良好。 突然之间,当我尝试打开项目或项目中的任何文件时
我一直在使用 Compass 编译 Windows 环境中的 sass 文件,无论是在命令行上还是使用 Compass-app 来查看目录。 我刚刚开始使用 Visual Studio(专业版 201
我是一名优秀的程序员,十分优秀!