Невозможно подключиться к джедаю в AndroidStudio (Java) - PullRequest
0 голосов
/ 09 апреля 2020

Мое приложение обрушивается, когда я нажимаю кнопку, которая отвечает за подключение к базе данных Redis с помощью клиента Jedis и изменение TextView на значение, в котором хранится jedis.ping () (должно возвращаться «Pong»). Код и журнал ниже. Те же операции (подключение к Redis и печать jedis.ping ()) отлично работают в Eclipse. Может быть, я вставил код, связанный с джедаем в неправильном месте? Я слишком мало знаю о Android программировании. Заранее спасибо!

package com.samfoundation.samfoundation;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import redis.clients.jedis.Jedis;


public class MainActivity extends AppCompatActivity {
    Button click;
    TextView show;
    @Override


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        click = (Button)findViewById(R.id.button);
        show = (TextView)findViewById(R.id.textView);




        click.setOnClickListener(new View.OnClickListener() {
            @Override

            public void onClick(View v) {
                Jedis jedis = new Jedis("localhost");
                String value = jedis.ping();
                show.setText(value);
            }
        });
    }
}

Журнал:

2020-04-09 19:53:22.473 32666-32666/com.samfoundation.samfoundation E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.samfoundation.samfoundation, PID: 32666
    redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host localhost:6379
        at redis.clients.jedis.Connection.connect(Connection.java:204)
        at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100)
        at redis.clients.jedis.Connection.sendCommand(Connection.java:125)
        at redis.clients.jedis.Connection.sendCommand(Connection.java:120)
        at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:113)
        at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:188)
        at com.samfoundation.samfoundation.MainActivity$1.onClick(MainActivity.java:33)
        at android.view.View.performClick(View.java:7259)
        at android.view.View.performClickInternal(View.java:7236)
        at android.view.View.access$3600(View.java:801)
        at android.view.View$PerformClick.run(View.java:27892)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.net.SocketException: socket failed: EACCES (Permission denied)
        at java.net.Socket.createImpl(Socket.java:492)
        at java.net.Socket.getImpl(Socket.java:552)
        at java.net.Socket.setReuseAddress(Socket.java:1493)
        at redis.clients.jedis.Connection.connect(Connection.java:171)
        at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100) 
        at redis.clients.jedis.Connection.sendCommand(Connection.java:125) 
        at redis.clients.jedis.Connection.sendCommand(Connection.java:120) 
        at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:113) 
        at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:188) 
        at com.samfoundation.samfoundation.MainActivity$1.onClick(MainActivity.java:33) 
        at android.view.View.performClick(View.java:7259) 
        at android.view.View.performClickInternal(View.java:7236) 
        at android.view.View.access$3600(View.java:801) 
        at android.view.View$PerformClick.run(View.java:27892) 
        at android.os.Handler.handleCallback(Handler.java:883) 
        at android.os.Handler.dispatchMessage(Handler.java:100) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

AndroidManifest. xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.samfoundation.samfoundation">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
...