0

我正在尝试在一个名为 YouWave for Android 4.1.1 的 Android 模拟器上进行一个简单的小测试(我相信它是)。

我正在使用 IntelliJ 生成与模拟器一起使用的 APK 文件。我只是进入 Artifacts 并制作了一个 Artifact 来创建一个 APK 文件。没有做任何其他事情。

项目结构菜单

该应用程序的想法很简单。当一些代码运行时,将代码的结果显示在一个我可以阅读的小框中,然后在我阅读完后关闭。但是当我在模拟器中启动应用程序时,它会显示“加载 100%”,然后什么也没有发生。(它可以与该软件附带的另外两个应用程序一起使用,所以我知道它可以正常工作。)

这是代码:

package com.example.DalvikTest;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.content.Context;

public class MyActivity extends Activity {

    final Context context = this;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        long time = RunTest();
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("Results");
        builder.setCancelable(true);
        String s = "Time: " + time + " ns";
        builder
                .setMessage(s)
                .setCancelable(false)
                .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        MyActivity.this.finish();
                    }
                })
                .setNegativeButton("No",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
        AlertDialog alert = builder.create();
        alert.show();
    }

    public long RunTest() {
        long timeStart = System.nanoTime();
        long sum = 0;
        int[] arr = new int[1000000];
        for(int i : arr) {
            sum += i;
        }
        long timeEnd = System.nanoTime();
        long result = timeEnd - timeStart;
        return result;
    }
}

为什么现在显示结果框?

4

2 回答 2

2

我前段时间使用过 YouWave,但遇到了一些应用程序也无法正常工作的问题。您的问题可能在于您使用的是 YouWave 播放器不支持的可调试和开发签名的 apk 文件(至少在旧版本中不起作用),并且您需要导出使用生产密钥签名的文件。实际上这很简单,因为您可以生成自己的密钥,考虑到您在网站上的代表,我猜您已经熟悉此过程,如果有人需要了解所有内容,请参考此处http://developer.android.com/tools /publishing/app-signing.html

于 2013-05-23T13:24:06.693 回答
1

对不起,我不能评论,因为我没有足够的声誉,

我想说的是:

我测试了你的代码,它工作正常,所以应该没问题。

并在 oncreate 中清理您的代码:

showDialog();

在 oncreate 类型下,您的代码如下:

public void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("Results");
        builder.setCancelable(true);
        String s = "Time: " + time + " ns";
        builder
                .setMessage(s)
                .setCancelable(false)
                .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        MyActivity.this.finish();
                    }
                })
                .setNegativeButton("No",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
        AlertDialog alert = builder.create();
        alert.show();
    }
于 2013-05-23T13:30:44.560 回答