我通过意图启动活动时遇到了这个问题。问题是,如果我进入XML,并将AugmentedReality设置为主活动(并且将要启动的活动作为第一个活动),则基本上没有问题。

<activity android:name=".AugmentedReality" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


该应用程序将在相机预览上绘制一个多维数据集,但随后我将不会“访问”其他活动“位置”,“ DescriptionText”和“ Description”。如果我将Location活动保留为XML文件中的主要活动,然后按将我带到AugmentedReality活动的按钮,则看不到绘制的多维数据集(我使用了Log.v(TAG, "Cube drawn");并被发送了垃圾邮件) 。

我正在使用此代码从Location类声明并发送意图
public class Language extends Activity implements OnClickListener

    `if (dButton.isPressed()) {
        description = dbh.getDescription("Danish");
        list = dbh.getGPS("Maribo");
        f = new float[list.size()];
        for (int i = 0; i < list.size(); i++) {
            f[i] = list.get(i);
        }
            intent = new Intent(this, Description.class);
            try {
                startActivity(intent);
            } catch (ActivityNotFoundException ex) {
            }
    }`


当我按下dButton时,我将被发送到我的AugmentedReality活动,该活动仅显示摄像机预览。而不是立方体。这是AugmentedReality中的onCreate方法

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        camview = new CameraView(this);
        graphics = new GraphicsView(this);
        final Window win = getWindow();
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(graphics);
        addContentView(camview, new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));
        Log.v("AR", "Content sat");
    }


GraphicsView中的onSurfaceChanged:

public void onDrawFrame(GL10 gl) {
    gl.glDisable(GL10.GL_DITHER);
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    gl.glMatrixMode(GL10.GL_MODELVIEW);
    gl.glLoadIdentity();
    // GLU.gluLookAt(gl, coords[0], coords[1], 0, 0, 0, 0,
    // orientation[0],
    // orientation[1], orientation[2]);
    GLU.gluLookAt(gl, 0, 0, -5, 0, 0, 0, 0, 2, 0);
    gl.glRotatef(45, 45, 0, 15);
    cube.draw(gl);


当然还有我的Cube类中的draw方法:

public void draw(GL10 gl) {
    gl.glFrontFace(GL10.GL_CW);
    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glCullFace(GL10.GL_BACK);
    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, verticesBuffer);
    gl.glDrawElements(GL10.GL_TRIANGLES, indices.length,
            GL10.GL_UNSIGNED_SHORT, indicesBuffer);
    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glDisable(GL10.GL_CULL_FACE);
}


我希望有人能告诉我为什么只有在我的XML文件中将AugmentedReality设置为main时才能看到多维数据集。相机在XML文件中拥有所有必需的权限,而Location类具有使用GPS的权限

最佳答案

您是否已在清单文件中映射了描述类?即使您已映射,也需要授予权限

     <uses-permission android:name="android.permission.CAMERA"></uses-permission>
    <uses-feature android:name="android.hardware.camera"/>

 <activity android:name=".Description"/>

08-18 06:57