Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序在设备上不工作,而在模拟器上工作正常_Android_Android Studio - Fatal编程技术网

Android应用程序在设备上不工作,而在模拟器上工作正常

Android应用程序在设备上不工作,而在模拟器上工作正常,android,android-studio,Android,Android Studio,我有一个android应用程序,它在Emulator上运行良好。但当我在设备上试用时,它显示出一些问题,比如“无法在上执行活动的方法”。下面是logcat报告 FATAL EXCEPTION: main java.lang.IllegalStateException: Could not execute method of the activity at android.view.View$1.onClick(View.java:3640) at android.

我有一个android应用程序,它在Emulator上运行良好。但当我在设备上试用时,它显示出一些问题,比如“无法在上执行活动的方法”。下面是logcat报告

FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
        at android.view.View$1.onClick(View.java:3640)
        at android.view.View.performClick(View.java:4249)
        at android.view.View$PerformClick.run(View.java:17764)
        at android.os.Handler.handleCallback(Handler.java:730)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
Caused by: java.lang.NoSuchMethodError: android.app.AlarmManager.setExact
        at com.example.manju.remainder.service.task.AlarmTask.run(AlarmTask.java:49)
        at com.example.manju.remainder.service.ScheduleService.setAlarm(ScheduleService.java:50)
        at com.example.manju.remainder.service.ScheduleClient.setAlarmForNotification(ScheduleClient.java:55)
        at com.example.manju.remainder.MainActivity.callAlarm(MainActivity.java:507)
        at com.example.manju.remainder.MainActivity.checkDates(MainActivity.java:474)
        at com.example.manju.remainder.MainActivity.submitButtonClicked(MainActivity.java:160)
有人能帮我解决这个问题吗?

试试这个:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
   // only for kitkat and newer versions
   android.app.AlarmManager.setExact(int type, long triggerAtMillis, PendingIntent operation);
} else {
   android.app.AlarmManager.set(int type, long triggerAtMillis, PendingIntent operation);
}
基本上,
.setExact(…)方法需要API 19及以上版本(这只是一种绕过android提供的优化的方法,以最大限度地延长电池寿命)。

尝试以下方法:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
   // only for kitkat and newer versions
   android.app.AlarmManager.setExact(int type, long triggerAtMillis, PendingIntent operation);
} else {
   android.app.AlarmManager.set(int type, long triggerAtMillis, PendingIntent operation);
}

基本上,
.setExact(…)方法需要API 19及以上版本(这只是一种绕过android提供的优化的方法,以最大限度地延长电池寿命)。

另一种解决方案是,将build.gradle中的minsdk版本设置为手机中的版本

假设你的手机版本是安卓5.0,那么API级别是21。您可以设置MinSDK版本21

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}

这肯定会奏效。

另一个解决方案是,将build.gradle中的minsdk版本设置为手机中的版本

假设你的手机版本是安卓5.0,那么API级别是21。您可以设置MinSDK版本21

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}

这肯定会起作用。

您确定emulator和测试设备的版本相同吗?当然可以。它在emulator上正常运行。很抱歉,如何检查!!那是你的问题。[
setExact()
](,long,android.app.pendingent))需要最小API 19,谢谢。。!特别是@codeMagic。它现在正在工作。。!您确定emulator和您的测试设备的版本相同吗?当然可以。它在emulator上正常运行。很抱歉,如何检查!!那是你的问题。[
setExact()
](,long,android.app.pendingent))需要最小API 19,谢谢。。!特别是@codeMagic。它现在正在工作@ManjuJK很高兴它奏效了:D,接受它作为正确的答案,这样其他人可能会受益too@ManjuJK很高兴它成功了:D,接受它作为正确的答案,这样其他人也会受益