방금 놀이방에서 내 앱을 업데이트했고 사람들로부터 충돌 보고서를 받기 시작했습니다. 하나는 내가 아는 사람 이었기 때문에이 문제를 해결하기 위해 도움을주었습니다. 문제가 발생했음을 발견했습니다. 무언가에 의해 나는 심지어 수정하지 않았다. 코드는 문제의 원인이 부분처럼 보이는이유없이 충돌하는 앱
내 친구 후
public class Bulb extends Activity {
public boolean isAwake = false;
boolean timerActivated = false;
static ImageView glow;
public static boolean bulbActIsRunning = false;
public void startWake() {
Intent wS=new Intent(getBaseContext(), WakeService.class);
startService(wS);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton bulb = (ImageButton) findViewById(R.id.bulb);
ImageButton ghl = (ImageButton) findViewById(R.id.ghl);
glow = (ImageView) findViewById(R.id.glow);
if (WakeService.isAwake) {
glow.setVisibility(View.VISIBLE);
}
else {
glow.setVisibility(View.INVISIBLE);
}
bulb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startWake();
if (WakeService.isAwake) {
glow.setVisibility(View.INVISIBLE);
}
else {
glow.setVisibility(View.VISIBLE);
}
}
});
ghl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.geekshavelanded.com/"));
startActivity(browserIntent);
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
glow = (ImageView) findViewById(R.id.glow);
if (WakeService.isAwake) {
glow.setVisibility(View.VISIBLE);
}
else {
glow.setVisibility(View.INVISIBLE);
}
}
@Override
public void onStart() {
super.onStart();
bulbActIsRunning = true;
}
@Override
public void onStop() {
super.onStop();
bulbActIsRunning = false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
는 전구 버튼을 이유없이 응용 프로그램이 충돌을 클릭 할 bulb.onClickListener이다, 나는에 약간의 토스트 알림을 넣었습니다 이 충돌하기 전에 나타난 경우 OnClickListener를의 시작은 볼 수 있지만,
충돌 보고서가이
java.lang.RuntimeException: Unable to start service [email protected] with Intent { cmp=com.doublep.wakey/.WakeService }: java.lang.NullPointerException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2933)
at android.app.ActivityThread.access$1900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1438)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:155)
at android.app.ActivityThread.main(ActivityThread.java:5454)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1436)
at android.os.Parcel.readException(Parcel.java:1384)
at com.android.internal.appwidget.IAppWidgetService$Stub$Proxy.updateAppWidgetIds(IAppWidgetService.java:513)
at android.appwidget.AppWidgetManager.updateAppWidget(AppWidgetManager.java:333)
at android.appwidget.AppWidgetManager.updateAppWidget(AppWidgetManager.java:400)
at com.doublep.wakey.WakeService.keepAwake(WakeService.java:86)
at com.doublep.wakey.WakeService.onStartCommand(WakeService.java:48)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2912)
... 10 more
처럼 보이지 않았다
누군가 의심스러운 것을 볼 수 있습니까? 위젯에서 서비스를 호출 할 수 있기 때문에 앱을 업데이트 할 때이 액티비티 코드를 건드리지도 않았다. 그래서 문제는 여기에 있어야합니다
는 또한 7 8에서 최소 SDK를 수정 (하지만 내가 8로 다시 넣었습니다 작동하는지 확인) 그리고 난 공간을 절약하기 위해 일부 그래픽 조금 더 압축
편집 나는이 그것을 작동 보인다 대부분에, 몇 가지 장치에만 발생, 말을 잊었 오 미세
업데이트 2이 이러한 문제를
AppWidgetManager mgr=AppWidgetManager.getInstance(this);
mgr.updateAppWidget(ToggleWidget.appWidgetId, ToggleWidget.remoteViews);
원인 코드의 조각
WakeService의 어떤 행 86과 48 행을 말할 수 있습니까? – MrZander
'NullPointerException' *은 이유입니다.) – Ahmad
48 번째 줄과 86 번째 줄은 로그이고, 48 번째 줄은 if else 문에서 가져온 것이고, else 문은 48 번째 줄의 코드를 생성하고 메서드를 실행합니다.이 메서드는 로그를 포함합니다 86, wakelock 후에 쓰여짐 WakeService도 위젯에서 호출되므로 잘 작동합니다. – DoubleP90