【问题标题】:Can't instantiate usbmanager inside the Jar thats created无法在创建的 Jar 中实例化 usbmanager
【发布时间】:2013-09-16 19:35:20
【问题描述】:

我正在尝试在我创建的库中使用 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);

在库文件中。

【问题讨论】:

  • 什么是崩溃?您是否为库指定了com.android.future.usb.accessory
  • 在我的图书馆里我有import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager;

标签: java android jar usbserial ftdi


【解决方案1】:

getSystemService() 在构造函数中简单地返回null,因为Context 未初始化。在您的usb_manager 服务中覆盖onCreate() 并在那里分配myUsbManager。 并且不要在Activity 中调用服务构造函数,而是使用startService()

看到这个services tutorial

【讨论】:

  • 是的......但也正确地实例化服务,不是通过调用它的构造函数。
  • 对。我忽略了构造函数调用。答案已更新。
  • 好的,我知道发生了什么,让我处理它,稍后我会更新你们,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 2011-09-09
  • 2021-05-17
相关资源
最近更新 更多