gpt4 book ai didi

java - Android Studio 中的 IllegalAccessException 目标 android 为 4.4

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:11 24 4
gpt4 key购买 nike

在我的 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 支持。关于 KitkatArrayList 和 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com