[英]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.