我正在尝试在一款名为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;
}
}
为什么现在显示结果的框?
答案 0 :(得分:2)
前段时间我使用了YouWave,并且遇到了一些应用程序无法正常工作的问题。 您的问题可能在于您正在使用YouWave播放器不支持的可调试和开发签名的apk文件(它至少在旧版本中不起作用)并且您需要导出使用生产密钥签名的文件。它实际上非常简单,因为你可以生成自己的密钥,考虑到你在网站上的代表,我猜你已经熟悉这个过程,如果有人需要知道所有内容都在这里解释http://developer.android.com/tools/publishing/app-signing.html
答案 1 :(得分: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();
}