Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可以在JVM中运行Android应用程序吗?_Java_Android - Fatal编程技术网

Java 可以在JVM中运行Android应用程序吗?

Java 可以在JVM中运行Android应用程序吗?,java,android,Java,Android,我试图在Android应用程序上运行符号测试,以收集一些信息,例如,执行树。因此,我希望在JVM中运行它,而不是在模拟器中运行,因为有很多现有的Java应用程序符号测试工具 我试着运行HelloAndroid,它是一个示例应用程序,通过 java -cp ./ -cp $ANDROID_LIB/android.jar HelloAndroid.class 其中HelloAndroid.class是在转换为.dex之前编译的Java类。但JVM一直在抱怨 Exception in thread

我试图在Android应用程序上运行符号测试,以收集一些信息,例如,执行树。因此,我希望在JVM中运行它,而不是在模拟器中运行,因为有很多现有的Java应用程序符号测试工具

我试着运行HelloAndroid,它是一个示例应用程序,通过

java -cp ./ -cp $ANDROID_LIB/android.jar HelloAndroid.class
其中HelloAndroid.class是在转换为.dex之前编译的Java类。但JVM一直在抱怨

Exception in thread "main" java.lang.NoClassDefFoundError: HelloAndroid/class
Caused by: java.lang.ClassNotFoundException: HelloAndroid.class
我很困惑,因为我已经指定了HelloAndroid类。源代码中没有复杂的语句或对Android库的调用:

package com.example.helloandroid;

import android.app.Activity;
import android.os.Bundle;
    import android.widget.TextView;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);
    }   
}

我是Android新手,正在努力使这个小应用程序在JVM中执行。你能给我一些建议吗?我想知道我是否走对了路,我的意思是尝试在JVM中执行简单的应用程序?谢谢

Android应用程序的编译方式与Java应用程序不同。Android应用程序被编译成.dex文件,其中普通Java应用程序被编译成jar文件;两者都不可能彼此兼容

目前最接近在PC上运行Android应用程序的是Android emulator

所以要回答你的问题,不,在Oracle的JVM中运行Android应用程序是不可能的