我试图在我的Android应用上使用Image Button,但每次在手机上运行它都会崩溃。这是我正在使用的代码。有人能帮我吗?我想知道我在哪里拧它。如果我错过了我的代码或其他内容。任何建议将不胜感激。谢谢。
编辑:添加了XML代码
编辑*:添加了Logcat
代码:
ImageButton emergencia_nueve = (ImageButton) findViewById(R.id.telefono_nine);
emergencia_nueve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
String number="911";
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(number));
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
}
});
XML:
<ImageButton
android:id="@+id/telefono_nine"
android:layout_width="@android:dimen/app_icon_size"
android:layout_height="@android:dimen/app_icon_size"
android:layout_alignStart="@+id/alarmaizq"
android:layout_below="@+id/alarmaizq"
android:layout_marginStart="12dp"
android:layout_marginTop="26dp"
android:adjustViewBounds="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@drawable/phone"
android:onClick="telefono_nine"
app:srcCompat="@drawable/phone" />
Logcat:
04-28 08:44:24.199 1237-1237/? I/TrafficMonitor: gettimer:interval=2000
04-28 08:44:24.660 1237-1353/? E/libfingersense_wrapper: libfingersense.so was not loaded
04-28 08:44:24.768 1237-1353/? E/libfingersense_wrapper: libfingersense.so was not loaded
04-28 08:44:24.802 15853-15853/? E/HW-JPEG-DEC: [HME_JPEG_DEC_Delete](3321): HME_JPEG_DEC_Delete: decoder_ctx=null
04-28 08:44:24.805 15853-15853/? E/HW-JPEG-DEC: [HME_JPEG_DEC_Delete](3321): HME_JPEG_DEC_Delete: decoder_ctx=null
04-28 08:44:24.820 15853-15853/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: e.danma.drawer, PID: 15853
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at e.danma.drawer.MainActivity.onNavigationItemSelected(MainActivity.java:107)
at android.support.design.widget.NavigationView$1.onMenuItemSelected(NavigationView.java:154)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:171)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:973)
at android.support.design.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:342)
at android.view.View.performClick(View.java:5646)
at android.view.View$PerformClick.run(View.java:22459)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
04-28 08:44:24.830 1237-1237/? I/SendBroadcastPermission: action:android.intent.action.DROPBOX_ENTRY_ADDED, mPermissionType:0
04-28 08:44:24.832 1237-2988/? E/ReportTools: This is not beta user build
04-28 08:44:24.838 1237-1250/? W/RMS.SmartShrinker: SmartShrinker is runing in pid =24275 reclaim mode = 4
04-28 08:44:24.839 1237-1250/? W/RMS.SmartShrinker: SmartShrinker is runing in pid =12011 reclaim mode = 4
04-28 08:44:24.839 1237-1250/? W/RMS.SmartShrinker: SmartShrinker is runing in pid =3851 reclaim mode = 4
04-28 08:44:24.839 1237-1250/? W/RMS.SmartShrinker: SmartShrinker is runing in pid =14034 reclaim mode = 4
04-28 08:44:24.840 15853-15853/? I/Process: Sending signal. PID: 15853 SIG: 9
04-28 08:44:25.024 1237-9699/? I/SendBroadcastPermission: action:android.intent.action.SIG_STR, mPermissionType:0
04-28 08:44:25.024 1237-1237/? I/MQoS: onSignal: mSubId=0,currDataSubID=0
04-28 08:44:25.024 1237-1237/? I/MQoS: received cell-signal:5
04-28 08:44:25.026 407-418/? I/gralloc: alloc_device_free:586: Free handle(0x783f0a2a00)
04-28 08:44:25.026 407-418/? I/gralloc: alloc_device_free:586: Free handle(0x783f105100)
04-28 08:44:25.028 1237-20357/? E/HsmCoreServiceImpl: onTransact in code is: 102
04-28 08:44:25.028 1237-20357/? I/MediaProcessHandler: processOp opType: 1, uid: 10179, pid: 15853
04-28 08:44:25.028 1237-20357/? W/MediaProcessHandler: remove target not exist, maybe the UI process: uid: 10179, pid: 15853
04-28 08:44:25.031 1547-1632/? I/HwMobileSignalController: subId:0 phoneType:1 networktype:3 targetClass:2 masterLevel:5 slaveLevel:-1
04-28 08:44:25.033 1237-1352/? W/InputDispatcher: channel 'c92dc14 e.danma.drawer/e.danma.drawer.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
04-28 08:44:25.033 1237-1352/? E/InputDispatcher: channel 'c92dc14 e.danma.drawer/e.danma.drawer.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
04-28 08:44:25.085 1237-1367/? E/WifiConfigManager: updateConfiguration freq=2437 BSSID=58:23:8c:6a:96:5a RSSI=-45 "HOME-965A"WPA_PSK
04-28 08:44:25.090 1237-4023/? W/InputDispatcher: Attempted to unregister already unregistered input channel 'c92dc14 e.danma.drawer/e.danma.drawer.MainActivity (server)'
04-28 08:44:25.106 407-407/? I/gralloc: alloc_device_free:586: Free handle(0x783f0a2000)
04-28 08:44:25.129 2507-2507/? I/HwLauncher: Launcher onStart()
04-28 08:44:25.129 2507-2507/? I/HwLauncher: Launcher Launcher.onStart() cost 0 ms
04-28 08:44:25.129 2507-2507/? I/HwLauncher: Launcher onResume()
04-28 08:44:25.134 2507-2507/? I/HwLauncher: Launcher doResumeWork()
04-28 08:44:25.148 2507-2507/? I/HwLauncher: Launcher onResume mIsToUninstallApp = false
04-28 08:44:25.148 2507-2507/? I/HwLauncher: Launcher Launcher hot start cost 19 ms
04-28 08:44:25.159 2507-2752/? I/OpenGLRenderer: Initialized EGL, version 1.4
04-28 08:44:25.159 2507-2644/? E/HwLauncher: SettingsEx , no such field.
04-28 08:44:25.162 2507-2644/? W/HwLauncher: Clock getDataFormat the getSystemString failed.
04-28 08:44:25.171 407-1449/? I/gralloc: alloc_device_alloc:564: Alloc handle(0x783f0a2f00): interfmt=200000001, stride=1088, size=8486912, usage=0xb00
04-28 08:44:25.178 407-1449/? I/gralloc: alloc_device_alloc:564: Alloc handle(0x783f037e00): interfmt=200000001, stride=1088, size=8486912, usage=0xb00
04-28 08:44:25.181 1547-1547/? I/PhoneStatusBarPolicy: updateBluetooth:::setBluetoothBatteryEnable false.
04-28 08:44:25.181 1547-1547/? I/PhoneStatusBarPolicy: updateBluetooth::bluetoothEnabled:false, bluetoothConnected=false, bluetoothTransfering=false
04-28 08:44:25.184 407-1449/? I/gralloc: alloc_device_alloc:564: Alloc handle(0x783f037200): interfmt=200000001, stride=1088, size=8486912, usage=0xb00
04-28 08:44:25.190 2507-2752/? E/OpenGLRenderer: allen debug liyu Key: 1
04-28 08:44:25.199 2507-2752/? E/OpenGLRenderer: allen debug liyu Key: 34359738371
04-28 08:44:25.201 2507-2752/? E/OpenGLRenderer: allen debug liyu Key: 68719476744
04-28 08:44:25.203 2507-2752/? E/OpenGLRenderer: allen debug liyu Key: 68719476736
04-28 08:44:25.230 2507-2507/? I/HwLauncher: Launcher.Utilities unread scaledHeight = 54;sBigIconSize = 172
04-28 08:44:25.269 1237-1353/? E/libfingersense_wrapper: libfingersense.so was not loaded
04-28 08:44:25.282 2507-2507/? I/HwLauncher: FPSMonitor [Launcher , dispatchTouchEvent begin, false, true] down event x = 355 y = 661
04-28 08:44:25.282 2507-2507/? I/HwLauncher: Launcher workspaceTranslationX = 0.0
04-28 08:44:25.283 2507-2507/? I/HwLauncher: FPSMonitor [PagedView , onIntercept] down event x = 355 y = 661
04-28 08:44:25.284 2507-2507/? I/HwLauncher: FPSMonitor [Launcher , dispatchTouchEvent end, false, true] down event x = 355 y = 661
04-28 08:44:25.327 1237-1353/? E/libfingersense_wrapper: libfingersense.so was not loaded
04-28 08:44:25.328 2507-2507/? I/HwLauncher: FPSMonitor [Launcher , dispatchTouchEvent begin, false, true] up event x = 355 y = 661
04-28 08:44:25.329 2507-2507/? I/HwLauncher: FPSMonitor [PagedView , onIntercept] up event x = 355 y = 661
04-28 08:44:25.329 2507-2507/? I/HwLauncher: FPSMonitor [Launcher , dispatchTouchEvent end, false, true] up event x = 355 y = 661
04-28 08:44:25.699 2507-2752/? W/OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
04-28 08:44:25.699 2507-2752/? W/OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
04-28 08:44:26.201 1237-1237/? I/TrafficMonitor: update:rxPkts:0,txPkts:0,rxBytes:0,txBytes:0
04-28 08:44:26.201 1237-1237/? I/TrafficMonitor: start expired. level:-1
答案 0 :(得分:0)
首先对放置图像按钮的XML进行充气。 您只需将set content view调用到该xml即可在主Activity中执行此操作。
setContentView(R.layout.your_layout_name);
然后执行其余的代码实现。
同样在您的onCreate
活动中执行此操作。