java - 带有 .java 的引用类

标签 java android android-studio

我在引用时遇到一些问题,我正在使用 MainActivity.java,因此我想引用几个扩展名为 .java 的文件,但执行此操作时遇到一些错误。

这是我在 MainActivity.java 中的代码

package com.example.camuny;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.text.method.ScrollingMovementMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.example.camuny.bluetooth.BluetoothConnector;
import com.example.camuny.bluetooth.ImageGetterTask;
import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.drawing.ImageHandler;
import com.example.camuny.drawing.SurfaceDrawer;
import com.example.camuny.util.Logger;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


public class MainActivity extends AppCompatActivity implements Logger {
    private final static String MY_NAME = "ArduinoCam";

    private ImageHandler imageHandler = new ImageHandler();
    private SurfaceDrawer surfaceDrawer = new SurfaceDrawer(imageHandler);

    private Map<String, String> mPairedDevicesArrayAdapter = new HashMap<String, String>();
    private BluetoothConnector connector = null;

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

        connector = new BluetoothConnector();

        Button getImageButton = (Button) findViewById(R.id.getImageButton);

        getImageButton.setOnClickListener(buttonClicker);

        TextView loggerTextViewer = (TextView) findViewById(R.id.textView);
        loggerTextViewer.setMovementMethod(new ScrollingMovementMethod());

        SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
        SurfaceHolder surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(surfaceDrawer);

        enableConnect();

        try {
            mPairedDevicesArrayAdapter = BluetoothConnector.getBondedDevices();
            if (mPairedDevicesArrayAdapter.size() > 0) {
                Iterator<String> it = mPairedDevicesArrayAdapter.keySet().iterator();
                while(it.hasNext()) {
                    logMessage("Dispositivo Enlazado: " + it.next());
                }
            } else {
                logMessage("No hay   Dispositivo");
            }
        } catch (BluetoothException e){
            printStackTrace(e);
        }
    }

    private void enableConnect() {
        Button getImageButton = (Button) findViewById(R.id.getImageButton);
        getImageButton.setEnabled(true);
    }
    private void disableConnect() {
        Button getImageButton = (Button) findViewById(R.id.getImageButton);
        getImageButton.setEnabled(false);
    }

    protected void onDestroy() {
        super.onDestroy();
        try {
            connector.disconnect();
        } catch (BluetoothException e) {}
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        MenuItem menuItem = menu.add("Salir");
        menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem arg0) {
                finish();
                return true;
            }
        });
        return true;
    }


    private View.OnClickListener buttonClicker = new View.OnClickListener() {
        public void onClick(View v) {
            Button button = (Button)v;
            try {
                switch(button.getId()) {
                    //connection
                    case R.id.getImageButton:
                        if (!BluetoothConnector.isSupported()) {
                            logMessage("Bluetooth no soportado");
                            return;
                        }
                        if (!BluetoothConnector.isEnabled()) {
                            logMessage("Bluetooth no esta Habilitado");
                            return;
                        }

                        Map<String, String> temp = new HashMap<String, String>();
                        temp.putAll(mPairedDevicesArrayAdapter);

                        String nxtKey = temp.get(MY_NAME);
                        if (nxtKey != null) {
                            disableConnect();

                            connector.connect(nxtKey);
                            logMessage("Conectado");

                            ImageGetterTask task = new ImageGetterTask(
                                                            imageHandler,
                                                            connector,
                                                            MainActivity.this,
                                                            (Button) findViewById(R.id.getImageButton));
                            task.execute();

                        } else {
                            logMessage(MY_NAME + " no esta disponible");
                            enableConnect();
                        }
                    break;
                }
            } catch (Exception e) {
                printStackTrace(e);
            }
        }
    };

    public void logMessage(String message) {
        TextView loggerTextViewer = (TextView) findViewById(R.id.textView);
        loggerTextViewer.append(message + "\n");
    }

    public void printStackTrace(Exception e) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        logMessage("StackTrace: " + sw.toString());
    }
}

看起来像错误:

Image Error

错误是:

import com.example.camuny.bluetooth.BluetoothConnector;
import com.example.camuny.bluetooth.ImageGetterTask;
import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.drawing.ImageHandler;
import com.example.camuny.drawing.SurfaceDrawer;
import com.example.camuny.util.Logger;

我检查了我的文件,地址没问题,我做错了什么?

最佳答案

问题是当我使用另一个项目(旧项目)的目录(src 内的所有文件)创建新项目时,所以在旧项目中,目录是另一种方式。

在BluetoothConnector.java的引用中,旧项目是这样的:

package info.private.mer.camuny.bluetooth;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;

import info.private.mer.bluetooth.exception.BluetoothException;
import info.private.mer.bluetooth.exception.ConnectionBluetoothException;
import info.private.mer.bluetooth.exception.NotSupportedBluetoothException;

这就是该文件的解决方案:

package com.example.camuny.bluetooth;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;

import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.camuny.bluetooth.exception.ConnectionBluetoothException;
import com.example.camuny.bluetooth.exception.NotSupportedBluetoothException;

和其他文件一样: ImageGetterTask.java: 旧项目:

package info.private.mer.bluetooth;

import android.os.AsyncTask;
import android.widget.Button;

import info.private.mer.bluetooth.exception.BluetoothException;
import info.private.mer.drawing.ImageHandler;
import info.private.mer.util.Logger;

这就是解决方案:

package com.example.camuny.bluetooth;

import android.os.AsyncTask;
import android.widget.Button;

import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.camuny.drawing.ImageHandler;
import com.example.camuny.util.Logger;

因此,我在以下文件中进行了更改:BluetoothException、ImageHandler、SurfaceDrawer 和 Logger。

关于java - 带有 .java 的引用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58837266/

相关文章:

java - 如何编写eclipse内容辅助?

java - 为什么对象类中只有 clone 和 finalize 是 protected 方法?

java - 从 wsdl 生成 java 类时出错

android - 无法访问 onclick 方法中的变量

android - 如何在 Facebook Android sdk 4.0 中使用图形请求获取登录用户的电子邮件地址

android - 当我启动 Android Studio 时出现错误 :(21, 76) error: cannot find symbol variable fab

java - 使用 Gson 序列化一个 POJO

android - 应用程序在使用服务 android 时关闭时崩溃,因为我正在尝试使用 Intent

预览自定义 View 中的 Android ResourceNotFoundException

android - android studio 中带有选择器的图像按钮渲染错误