0

我希望你们中的一个可以帮助我。不幸的是,我在现有问题上没有找到任何帮助,而且我是 Android Studio 的新手。所以我按照本教程https://www.youtube.com/watch?v=JgcB6tMi0qE但没有得到相同的结果:我运行项目时手机上的背景是白色的,而不是视频透视。我从维基百科查找示例项目,并希望将示例中的相机项目包含在我的项目的主要活动中。当我运行该项目时,我收到以下错误:[错误] [1]

我看到项目无法加载包,但我将它们添加到 com 路径和库路径中。同一路径的其他导入没有问题,所以我不明白问题所在。这是 MainActivtiy.java 代码:

package com.casar.myapplication;

import android.hardware.camera2.CameraManager;
import android.os.Bundle;
import android.view.WindowManager;

import androidx.appcompat.app.AppCompatActivity;
import com.wikitude.NativeStartupConfiguration;
import com.wikitude.WikitudeSDK;
import com.wikitude.camera.CameraManager;
import com.wikitude.camera.CameraManagerListener;
import com.wikitude.common.WikitudeError;
import com.wikitude.common.camera.CameraSettings;
import com.wikitude.architect.ArchitectStartupConfiguration;
import com.wikitude.architect.ArchitectView;
import com.wikitude.common.camera.CameraSettings;
import com.wikitude.samples.WikitudeSDKConstants;
import com.wikitude.samples.camera.CameraSettingsActivity;

import static com.casar.myapplication.R.id;
import static com.casar.myapplication.R.layout;

public class MainActivity extends AppCompatActivity {
    private ArchitectView architectView;
    private WikitudeSDK wikitudeSDK;
    private CameraManager cameraManager;

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

        this.architectView = (ArchitectView)this.findViewById(id.architectView);
        final ArchitectStartupConfiguration config = new ArchitectStartupConfiguration();
        config.setLicenseKey("*****HERE IS MY KEY*****");
        this.architectView.onCreate( config );

        camera2Enabled = getIntent().getBooleanExtra("enableCamera2", true);

        wikitudeSDK = new WikitudeSDK(this);
        NativeStartupConfiguration startupConfiguration = new NativeStartupConfiguration();
        startupConfiguration.setLicenseKey(WikitudeSDKConstants.WIKITUDE_SDK_KEY);
        startupConfiguration.setCameraPosition(CameraSettings.CameraPosition.BACK);
        startupConfiguration.setCameraResolution(CameraSettings.CameraResolution.AUTO);

        wikitudeSDK.onCreate(getApplicationContext(), this, startupConfiguration);

        cameraManager = wikitudeSDK.getCameraManager();
        cameraManager.setListener(this);

        final TargetCollectionResource targetCollectionResource = wikitudeSDK.getTrackerManager().createTargetCollectionResource("file:///android_asset/magazine.wtc");
        wikitudeSDK.getTrackerManager().createImageTracker(targetCollectionResource, CameraSettingsActivity.this, null);

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {

        super.onPostCreate(savedInstanceState);
        this.architectView.onPostCreate();
    }

    @Override
    protected void onResume() {

        super.onResume();
        this.architectView.onResume();
    }

    @Override
    protected void onDestroy() {

        super.onDestroy();
        this.architectView.onDestroy();
    }

    @Override
    protected void onPause() {

        super.onPause();
        this.architectView.onPause();
    }
}

这是 java 路径结构:[结构 java dir][2]

在其他问题中,我发现 build:gradle 很重要,所以这是我的代码:

    plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 30

    defaultConfig {
        applicationId "com.casar.myapplication"
        minSdkVersion 22
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation project(path: ':mylibrary')
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.wikitude:js:9.4.0'
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.google.ar:core:1.15.0'
}

repositories {
    flatDir{
        dirs 'libs'
    }
}

您还需要其他信息吗?我很乐意为您提供一切,希望有人能提供帮助!问候![1]:https ://i.stack.imgur.com/cov3s.png [2]:https ://i.stack.imgur.com/Etb3D.png

4

1 回答 1

0

You need to remove implementation fileTree(dir: 'libs', include: ['*.jar']) You have mentioned implementation 'com.wikitude:js:9.4.0' so no need to add libs folder. Then sync and try to rebuild the project.

于 2020-11-20T15:58:59.140 回答