无法从另一个包调用类或方法(强制关闭)

时间:2017-11-06 09:22:47

标签: java android retrofit2

在整个项目中,每当我尝试在包之间调用另一个类中的任何方法或类时 发生NoSuchMethod或NoSuchClass或NosuchActivity错误。 但是我所调用的所有方法和类都存在。 相同的代码正在我的另一个Android项目。不要讨论什么问题。

这是我的代码

public interface ApiHolder {

    @GET("login_api.php")
    Call<LoginResponse> loginuser(@Field("username") String username,
                                  @Field("passwrd") String passwrd,
                                  @Field("key") String key);

}

我正在调用方法

的另一个类方法
public void validateUser(String user, String pass, String imei) {
        ApiHolder get_list = ServiceConnection.getClient().create(ApiHolder.class);
        Call<LoginResponse> call = get_list.loginuser(user, pass, K.Url.urlkey);
        call.enqueue(new Callback<LoginResponse>() {
            @Override
            public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
                   lr = response.body().getLoginData();

            }

            @Override
            public void onFailure(Call<LoginResponse> call, Throwable t) {
                t.printStackTrace();
                Log.e("***failure***", t.toString());

                //pDialog.dismiss();

            }
        });

    }

和logcat显示此错误

 FATAL EXCEPTION: Process: sample.co.in, PID:java.lang.NoSuchMethodError:
 No interface method loginuser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lretrofit2/Call; in class Lsample/co/in/webservice/ApiHolder; or its super classes (declaration of 'sample.co.in.webservice.ApiHolder' appears in /data/data/sample.co.in/files/instant-run/dex/slice-slice_7-classes.dex)
                                                                                   at eon.co.rdcconcrete.LoginActivity.validateUser(LoginActivity.java:199)
                                                                                    at eon.co.rdcconcrete.LoginActivity$1.onClick(LoginActivity.java:106)
                                                                                        at android.view.View.performClick(View.java:5207)
                                                                                        at android.view.View$PerformClick.run(View.java:21177)
                                                                                        at android.os.Handler.handleCallback(Handler.java:742)
                                                                                        at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                        at android.os.Looper.loop(Looper.java:154)
                                                                                        at android.app.ActivityThread.main(ActivityThread.java:5529)
                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)

manifest.class

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="sample.co.in">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/rdc_icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".LoginActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".DPRMainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">

    </activity>
</application>

1 个答案:

答案 0 :(得分:0)

如果您在使用android 6的模拟器上测试此代码,请不要忘记授予运行时权限

发生上述错误可能是由于权限所以请在应用信息中检查是否授予了权限...