我一直試圖解決這個問題幾天,仍然無法解決它...請有人可以幫助我。Starmicronics Android SDK庫無法運行
我目前正在嘗試開發一個應用程序,它與starmicronic應用程序的功能相同。你可以在下面找到SDK。
http://www.starmicronics.com/support/ZipFile.aspx?sat2=195
一開始我就在瓶子圖書館StarIOPort3.1.Jar複製到工作區,並導入到Main.java
我想這個功能複製到我的主類,但在首先,我錯過了在Manifest設置中添加Internet權限。添加互聯網權限後,我仍然得到E/AndroidRuntime(776)的運行時模式:java.lang.IllegalStateException:無法執行活動的方法。
但它適用於Star SDK ......但不適用於我的版本。
public void PortDiscovery(View view)
{
List<PortInfo> BTPortList;
List<PortInfo> TCPPortList;
final EditText editPortName;
final ArrayList<PortInfo> arrayDiscovery;
ArrayList<String> arrayPortName;
arrayDiscovery = new ArrayList<PortInfo>();
arrayPortName = new ArrayList<String>();
try {
BTPortList = StarIOPort.searchPrinter("BT:");
TCPPortList = StarIOPort.searchPrinter("TCP:");
for (PortInfo portInfo : BTPortList) {
arrayDiscovery.add(portInfo);
}
for (PortInfo portInfo : TCPPortList) {
arrayDiscovery.add(portInfo);
}
arrayPortName = new ArrayList<String>();
for(PortInfo discovery : arrayDiscovery)
{
String portName;
portName = discovery.getPortName();
if(discovery.getMacAddress().equals("") == false)
{
portName += "\n - " + discovery.getMacAddress();
if(discovery.getModelName().equals("") == false)
{
portName += "\n - " + discovery.getModelName();
}
}
arrayPortName.add(portName);
}
} catch (StarIOPortException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
editPortName = new EditText(this);
new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle("Please Select IP Address or Input Port Name")
.setView(editPortName)
.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int button)
{
EditText portNameField = (EditText)findViewById(R.id.editText_PortName);
portNameField.setText(editPortName.getText());
SharedPreferences pref = getSharedPreferences("pref", MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);
Editor editor = pref.edit();
editor.putString("portName", portNameField.getText().toString());
editor.commit();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int button)
{
}
})
.setItems(arrayPortName.toArray(new String[0]), new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int select)
{
EditText portNameField = (EditText)findViewById(R.id.editText_PortName);
portNameField.setText(arrayDiscovery.get(select).getPortName());
SharedPreferences pref = getSharedPreferences("pref", MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);
Editor editor = pref.edit();
editor.putString("portName", portNameField.getText().toString());
editor.commit();
}
})
.show();
}
我已經測試了一些日誌程序會給出運行時錯誤的方法 BTPortList = StarIOPort.searchPrinter(「BT:」); TCPPortList = StarIOPort.searchPrinter(「TCP:」); – Frank 2013-03-11 05:39:50
此外,我試圖運行在單獨的項目,它沒有工作。但如果我在同一個項目(StarSDK)上創建不同的類並且它可以工作。我想是配置問題,但製造商沒有說清楚。例如,製造商沒有在manifest.xml中包含Internet權限設置。因此,任何人都可以幫助解決這個問題嗎? – Frank 2013-03-11 06:18:29
你能給我們多一點信息嗎? illegalStateException發生在哪裏?你有堆棧跟蹤嗎? – 2013-03-11 06:39:37