2015-06-21 46 views
1

我有一個在Emulator上運行良好的android應用程序。但是當我在設備上嘗試它時,它顯示出一些問題,如「無法執行活動的方法」。以下是logcat報告。Android應用程序不是在設備上工作,而其在模擬器上的工作正常

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) 

誰能幫我關於這個..

+0

你確定模擬器和你的測試設備是相同的版本嗎? – Lal

+0

ya ofcourse..It正在模擬器上正常運行。 –

+0

對不起,如何檢查! –

回答

4

試試這個:

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提供,以最大限度延長電池壽命)。

+0

謝謝你sazid bi ...現在正在工作..! –

+0

@ManjuJK很高興它的工作:D,接受它作爲正確的答案,以便其他人也可能受益 – Sazid

0

另一種解決方案是,將您的build.gradle中的minSdkVersion設置爲Phone中的minSdkVersion。

假設你的手機版本是Android 5.0,那麼API級別爲21。你可以設置中的minSdkVersion 21

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

這將definetly工作。

相關問題