【发布时间】:2016-05-14 09:59:51
【问题描述】:
我在 android os 4.3 API 18 中运行应用程序时遇到此错误,但如果它在 os 5.1.0 API 22 上运行正常
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:289)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.TypeNotPresentException: Type com.webakruti.soilreport.model.LoginResponse not present
at org.apache.harmony.luni.lang.reflect.ImplForType.getRawType(ImplForType.java:64)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:73)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:61)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:53)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:72)
at org.apache.harmony.luni.lang.reflect.Types.getType(Types.java:29)
at java.lang.Class.getGenericSuperclass(Class.java:761)
at com.google.gson.reflect.TypeToken.getSuperclassTypeParameter(TypeToken.java:82)
at com.google.gson.reflect.TypeToken.
<init>
(TypeToken.java:62)
at com.webakruti.soilreport.ui.activities.LoginActivity$2.
<init>
(LoginActivity.java:79)
at com.webakruti.soilreport.ui.activities.LoginActivity.login(LoginActivity.java:79)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.webakruti.soilreport.model.LoginResponse
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:204)
at org.apache.harmony.luni.lang.reflect.ImplForType.getRawType(ImplForType.java:62)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:73)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:61)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:53)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:72)
at org.apache.harmony.luni.lang.reflect.Types.getType(Types.java:29)
at java.lang.Class.getGenericSuperclass(Class.java:761)
at com.google.gson.reflect.TypeToken.getSuperclassTypeParameter(TypeToken.java:82)
at com.google.gson.reflect.TypeToken.
<init>
(TypeToken.java:62)
at com.webakruti.soilreport.ui.activities.LoginActivity$2.
<init>
(LoginActivity.java:79)
at com.webakruti.soilreport.ui.activities.LoginActivity.login(LoginActivity.java:79)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com/webakruti/soilreport/model/LoginResponse
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:204)
at org.apache.harmony.luni.lang.reflect.ImplForType.getRawType(ImplForType.java:62)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:73)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:61)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:53)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:72)
at org.apache.harmony.luni.lang.reflect.Types.getType(Types.java:29)
at java.lang.Class.getGenericSuperclass(Class.java:761)
at com.google.gson.reflect.TypeToken.getSuperclassTypeParameter(TypeToken.java:82)
at com.google.gson.reflect.TypeToken.
<init>
(TypeToken.java:62)
at com.webakruti.soilreport.ui.activities.LoginActivity$2.
<init>
(LoginActivity.java:79)
at com.webakruti.soilreport.ui.activities.LoginActivity.login(LoginActivity.java:79)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.webakruti.soilreport.model.LoginResponse" on path: DexPathList[[zip file "/data/app/com.webakruti.soilreport-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.webakruti.soilreport-2, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:204)
at org.apache.harmony.luni.lang.reflect.ImplForType.getRawType(ImplForType.java:62)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:73)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:61)
at org.apache.harmony.luni.lang.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:53)
at org.apache.harmony.luni.lang.reflect.ImplForType.getResolvedType(ImplForType.java:72)
at org.apache.harmony.luni.lang.reflect.Types.getType(Types.java:29)
at java.lang.Class.getGenericSuperclass(Class.java:761)
at com.google.gson.reflect.TypeToken.getSuperclassTypeParameter(TypeToken.java:82)
at com.google.gson.reflect.TypeToken.
<init>
(TypeToken.java:62)
at com.webakruti.soilreport.ui.activities.LoginActivity$2.
<init>
(LoginActivity.java:79)
at com.webakruti.soilreport.ui.activities.LoginActivity.login(LoginActivity.java:79)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
java代码
public void login(View v) {
email = edtLogin.getText().toString();
pwd = edtPassword.getText().toString();
postParam = new HashMap<String, String>();
postParam.put("username", email);
postParam.put("password", pwd);
postParam.put("grant_type", "password");
JSONObject object = new JSONObject(postParam);
Type type = new TypeToken<LoginResponse>() {
}.getType();
// GeneralRequest.login(LoginActivity.this, type, object, LoginActivity.this, LoginActivity.this);
callApi(postParam);
}
XML where the method is called:
<Button
android:id="@+id/login"
android:layout_width="@dimen/width_400"
android:layout_height="wrap_content"
android:background="@drawable/btn_background"
android:layout_below="@+id/password"
android:layout_centerHorizontal="true"
android:onClick="login"
android:text="Login"
android:textStyle="bold"
android:textAllCaps="false"
android:layout_marginTop="@dimen/margin_corner"
android:textColor="@android:color/white"
/>
GRADLE 应用程序文件-
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "24.0.0 rc2"
defaultConfig {
applicationId "com.mycompany.soilreport"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
incremental = true;
preDexLibraries = false
javaMaxHeapSize "4g" // 2g should be also OK
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.google.code.gson:gson:2.4'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.code-troopers.betterpickers:library:2.5.3'
compile files('libs/itextg-5.5.4.jar')
}
到目前为止我尝试过的事情:
- 重启安卓工作室
- 重新启动精灵运动
- 重新启动我的笔记本电脑。
- 再次克隆项目
- 检查了java版本和gradle版本
- 卸载apk并重新安装
- 检查所有变量的初始化
谁能解释一下为什么我对这个构建文件有问题?
【问题讨论】:
-
把你的
Onclick()方法代码............ -
把代码也贴出来了,希望能帮到我
-
主要错误是这样的:
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.webakruti.soilreport.model.LoginResponse" on path: DexPathList[[zip file "/data/app/com.webakruti.soilreport-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.webakruti.soilreport-2, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) -
我猜找不到类是因为缺少一些库,我检查了是否缺少其中任何一个,没有一个丢失,还有其他原因导致我可能面临这个问题吗?
-
分享你的 Gradle 文件和你在 libs 文件夹中的所有 jars
标签: android android-studio android-gradle-plugin noclassdeffounderror