作成したライブラリ内で usbmanager を使用しようとしています。
私のライブラリには次のものがあります。
public class usb_manager extends Service{
private UsbManager myUsbManager;
public usb_manager(){
myUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
}
}
...
}
次に、別のJavaファイルでコンストラクターを呼び出そうとしています
public class MainActivity extends Activity {
public usb_manager testusb = new usb_manager();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
...
}
起動時にアプリがクラッシュします。
しかし、ライブラリのコードを次のように変更すると (つまり、usbmanager の初期化をアクティビティに移動します):
public class usb_manager extends Service{
private UsbManager myUsbManager;
public usb_manager(UsbManager in){
mUsbManager = in;
}
...
}
そして私のプログラムの MainActivity で:
public class MainActivity extends Activity {
public usb_manager testusb; = new usb_manager();
private UsbManager myUsbManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
testusb = new usb_manager(myUsbManager);
}
...
}
できます。
myUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE); の使用に関する問題を誰か教えてもらえますか?
ライブラリファイル内。