簡體   English   中英

是否可以在JVM中運行Android應用程序?

[英]Is it possible to run Android apps in JVM?

我正在嘗試在Android應用程序上運行符號測試,以收集一些信息,例如執行樹。 因此,我想在JVM中而不是在模擬器中運行它,因為存在許多用於Java應用程序的符號測試工具。

我試圖運行HelloAndroid,這是一個示例應用程序,通過在TextView上輸出“ Hello Android”

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模擬器。

因此,要回答您的問題,不,不可能在Oracle的JVM中運行Android應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM