admin管理员组

文章数量:1388080

I am trying to setup a CameraX Preview on an Android App using Java in Android Studio.

I am following the example from .

(I am also using a little: ).

I have 2 Errors:

Error 1. When I try:

Preview previewView = findViewById(R.id.previewView);

The Error says:

Preview previewView = findViewById(R.id.previewView)
where T is a type-variable:T extends View declared in method <T>findViewById(int)

Error 2.

When I try:

preview.setSurfaceProvider(previewView.getSurfaceProvider());

The Error says:

Preview.getSurfaceProvider can only be called from within the same library group 
(referenced groupId=androidx. camera from groupId=MiVi)

My Code:

[MainActivity.java]:

package com.example.mivi;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;

import androidx.camera.core.Camera;
import androidx.camera.core.CameraSelector;
import androidx.camera.core.Preview;
import androidx.camera.view.PreviewView;

import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleOwner;

import android.view.View;
import android.view.View.OnClickListener;

import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import .jetbrains.annotations.Nullable;

import java.util.concurrent.ExecutionException;

import androidx.camera.lifecycle.ProcessCameraProvider;
import com.googlemon.util.concurrent.ListenableFuture;

public class MainActivity extends AppCompatActivity {

    private ListenableFuture<ProcessCameraProvider> cameraProviderFuture;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cameraProviderFuture = ProcessCameraProvider.getInstance(this);

        cameraProviderFuture.addListener(() -> {
            try {
                ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
                bindPreview(cameraProvider);
            } catch (ExecutionException | InterruptedException e) {
                // No errors need to be handled for this Future.
                // This should never be reached.
            }
        }, ContextCompat.getMainExecutor(this));


    void bindPreview(@NonNull ProcessCameraProvider cameraProvider) {
        Preview preview = new Preview.Builder().build();
        Preview previewView = findViewById(R.id.previewView);

        CameraSelector cameraSelector = new CameraSelector.Builder()
                .requireLensFacing(CameraSelector.LENS_FACING_FRONT)
                .build();

        preview.setSurfaceProvider(previewView.getSurfaceProvider());

        Camera camera
           = cameraProvider.bindToLifecycle((LifecycleOwner)this,cameraSelector,preview);
    }

}

[activity_main.xml]:

<RelativeLayout xmlns:android=";
    xmlns:tools=";
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >   

<androidx.camera.view.PreviewView
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:layout_below="@+id/text_mivi"
    android:id="@+id/previewView" />

</RelativeLayout>

[build.gradle.kts]:

plugins {
    alias(libs.plugins.android.application)
}

android {
    namespace = "com.example.mivi"
    compileSdk = 35

    defaultConfig {
        applicationId = "com.example.mivi"
        minSdk = 24
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
    buildFeatures {
        viewBinding = true
    }
}

dependencies {

    implementation(libs.appcompat)
    implementation(libs.material)
    implementation(libs.constraintlayout)
    implementation(libs.navigation.fragment)
    implementation(libs.navigation.ui)

    testImplementation(libs.junit)
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)

    implementation(libs.camera.camera2)
    implementation(libs.camera.lifecycle.v150alpha06)
    implementation(libs.camera.video)
    implementation(libs.camera.view)
    implementation(libs.androidx.camera.mlkit.vision)
    implementation(libs.androidx.camera.extensions)

}

I tried to follow the example and configuration exactly from developer.android.

I am getting 2 errors.

I have googled the errors a lot.

I cannot find an answer anywhere to the errors.

I expected it to work because the resource seems very good, and no one else seems to have the same errors.

Thanks,

Alex

本文标签: