Следующий код выдает сообщение «невозможно открыть трассировку стека». Я пытаюсь отправить данные из клиента Java на Android в файл Java (https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/java/Recv.java)
Я также включил разрешения "write_external_storage" и "internet". Если я отключу «handler.post (send)», он не выдаст ошибку, но работа не будет выполнена.
Код Android:
TextView mOutput;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mOutput = (TextView) findViewById(R.id.output);
Handler handler = new Handler();
Runnable send = new Runnable(){
public void run() {
// TODO Auto-generated method stub
send();
}
};
mOutput.append("/nBefore");
handler.post(send);
mOutput.append("/nAfter");
}
private void send(){
Thread thread = new Thread(){
@Override
public void run(){
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("sethost");
Connection connection = null;
try {
connection = factory.newConnection();
mOutput.append("/ninstance1");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Channel channel = null;
try {
mOutput.append("/ninstance2");
channel = connection.createChannel();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mOutput.append("/ninstance3");
channel.queueDeclare("hello", false, false, false, null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String message = "Kamran Android E";
try {
mOutput.append("/ninstance4");
channel.basicPublish("logs","hello", null, message.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
thread.start();
}
}
Трассировка стека:
Android Launch!
[2012-02-20 18:21:28 - rabbitandroid] adb is running normally.
[2012-02-20 18:21:28 - rabbitandroid] Performing com.example.rabbitmq.RabbitandroidActivity activity launch
[2012-02-20 18:21:28 - rabbitandroid] Automatic Target Mode: launching new emulator with compatible AVD '21'
[2012-02-20 18:21:28 - rabbitandroid] Launching a new emulator with Virtual Device '21'
[2012-02-20 18:21:36 - Emulator] emulator: WARNING: Unable to create sensors port: Unknown error
[2012-02-20 18:21:36 - rabbitandroid] New emulator found: emulator-5554
[2012-02-20 18:21:36 - rabbitandroid] Waiting for HOME ('android.process.acore') to be launched...
[2012-02-20 18:22:08 - rabbitandroid] HOME is up on device 'emulator-5554'
[2012-02-20 18:22:08 - rabbitandroid] Uploading rabbitandroid.apk onto device 'emulator-5554'
[2012-02-20 18:22:08 - rabbitandroid] Installing rabbitandroid.apk...
[2012-02-20 18:22:33 - rabbitandroid] Success!
[2012-02-20 18:22:33 - rabbitandroid] Starting activity com.example.rabbitmq.RabbitandroidActivity on device emulator-5554
[2012-02-20 18:22:36 - rabbitandroid] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.rabbitmq/.RabbitandroidActivity }