기기의 CPU 사용량, 배터리 충전량 및 남은 RAM을 표시하는 앱용 위젯을 만들려고합니다. 저장 공간이 아닙니다.Android 위젯 : RAM 표시
CPU 수준과 배터리 충전 코드는 정상적으로 작동합니다. 그러나 RAM 코드는 그렇지 않습니다. AppWidgetProvider에서 .getSystemService()를 사용하려면 액티비티의 컨텍스트를 여기에 전달해야한다는 것을 읽었습니다.
import com.example.myfirstappex.MainActivity;
public class AppWidget extends AppWidgetProvider {
...
public long getRam()
{
MemoryInfo mi = new MemoryInfo();
Context mainCon = MainActivity.getAppContext();
ActivityManager activityManager = (ActivityManager)mainCon.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem/1048576L;
//Returning the value
return(availableMegs);
}
...
}
하나를 :
01-11 21:29:21.468: E/AndroidRuntime(30759): java.lang.RuntimeException: Unable to instantiate receiver com.example.myfirstappex.AppWidget: java.lang.NullPointerException
나는이 코드 블록에 문제를 좁혀 : 방법이 ActivityManager와 시스템 서비스를 설정하려고 할 때
문제는 그것을 던져이다 이 문제를 해결하는 방법에 대한 아이디어? 아니면 위젯에 RAM을 표시하고 표시하는 대신에?
편집 : 전체 오류 로그는 다음과 같습니다 주요 응용 프로그램이 실행되지 않을 때
01-11 22:21:32.426: E/AndroidRuntime(32059): FATAL EXCEPTION: main
01-11 22:21:32.426: E/AndroidRuntime(32059): java.lang.RuntimeException: Unable to start receiver com.example.myfirstappex.AppWidget: java.lang.NullPointerException
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2383)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1310)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.os.Looper.loop(Looper.java:137)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.app.ActivityThread.main(ActivityThread.java:5039)
01-11 22:21:32.426: E/AndroidRuntime(32059): at java.lang.reflect.Method.invokeNative(Native Method)
01-11 22:21:32.426: E/AndroidRuntime(32059): at java.lang.reflect.Method.invoke(Method.java:511)
01-11 22:21:32.426: E/AndroidRuntime(32059): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-11 22:21:32.426: E/AndroidRuntime(32059): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-11 22:21:32.426: E/AndroidRuntime(32059): at dalvik.system.NativeStart.main(Native Method)
01-11 22:21:32.426: E/AndroidRuntime(32059): Caused by: java.lang.NullPointerException
01-11 22:21:32.426: E/AndroidRuntime(32059): at com.example.myfirstappex.AppWidget.getRam(AppWidget.java:82)
01-11 22:21:32.426: E/AndroidRuntime(32059): at com.example.myfirstappex.AppWidget.onUpdate(AppWidget.java:35)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.appwidget.AppWidgetProvider.onReceive(AppWidgetProvider.java:66)
01-11 22:21:32.426: E/AndroidRuntime(32059): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2376)
01-11 22:21:32.426: E/AndroidRuntime(32059): ... 10 more
에만 발생합니다.
전체 로그를 게시 할 수 있습니까? 모든 빨간 물건. – Eric
로그를 추가했습니다. – ADiabeticBadger