Ответ 1
В java у вас не может быть кода вне метода. Все, что вы можете сделать, это инициализация членов класса. ИМХО это не проблема импорта банки.
Попробуй это:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
public class MainActivity extends AppCompatActivity {
String QUEUE_NAME = "hello";
ConnectionFactory factory = new ConnectionFactory();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
try {
factory.setHost("192.0.0.0");
factory.setUsername("test");
factory.setPassword("test");
Connection connection;
Channel channel;
connection = factory.newConnection();
channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Example3";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
} catch (IOException | TimeoutException e) {
throw new RuntimeException("Rabbitmq problem", e);
}
}
}
Возвращаясь к вашей первоначальной озабоченности, я не вижу причин, по которым вы вручную загружаете все ваши зависимости, а не используя встроенное управление зависимостями gradle.
Если вы обновите раздел зависимостей в файле build.gradle
, необходимые зависимости будут автоматически загружены. Гораздо проще добавлять/удалять/обновлять зависимости.
dependencies {
compile group: 'com.rabbitmq', name: 'amqp-client', version: '5.4.1'
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21'
compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.21'
}