Eclipseエラーで実機実行できない!初心者の質問

このQ&Aのポイント
  • Eclipseを使用してAndroidアプリ開発を試みていますが、実機での実行ができません。
  • EclipseでのAndroidアプリケーションの作成は成功し、実機にアイコンは表示されますが、起動時にエラーメッセージが表示されて中身が見られません。
  • res/layout/activity_main.xmlを編集するだけなら問題なく実行できますが、Javaのコードを編集すると中身が見られない状態です。エクリプスにはエラーは表示されていません。
回答を見る
  • ベストアンサー

Eclipse エラーはでないのに実機実行できず…

Androidアプリ開発を試みる初心者です。 無知な事を言っているかと思いますが、どなたかお優しい方回答をよろしくお願い致します。 Eclipse3.7・言語Java 1 EclipseでAndroidアプリケーションを新たに生成→src/example/MainActivity.Javaに、Hello World の文を表示させるべく public class HelloWorld { public static void main (String[] args) { System.out.println("Hello World !!"); } } を記述。 2 実機で実行→実機にアイコン表示はされるが「問題が発生したため○○を終了します」と表示が出て中身は見られない。 どこに問題があるのでしょうか? 素人の為検討もつかず、途方に暮れています。 ちなみに、res/layout/activity_main.xmlをいじるだけなら(ボタンを配置したり、文字を表示さたり)、実機実行は問題なくいき中身も見れるのですが、Javaをいじると中身が見られない。 エクリプスに×エラーが出てないのに何故なのでしょう? 調べても解決出来なかった為質問させて頂きます。 心の広い方、回答よろしくお願いしますm(_ _)m

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Zanelli
  • ベストアンサー率44% (40/89)
回答No.2

いじる前の MainActivity.java は以下のようになっていませんでしたか? この部分は変えてはダメです。 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } System.out.println も使えません。 activity_main.xml の中にある TextView を参照して、そこに表示したい文字を埋め込みます。 こんな感じ(↓)です。 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //activity_main.xml の中にある TextView の id が @+id/textView1 だとして TextView tv = (TextView)findViewById(R.id.textView1); tv.setText("表示したい文字列"); } }

manaria
質問者

お礼

回答ありがとうございます。 非常にわかりやすく助かりました。 未だにアプリは動きませんが…(--;

その他の回答 (1)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

> public class HelloWorld { > public static void main (String[] args) { > System.out.println("Hello World !!"); > } > } この書き方は、Androidでない普通のJavaでの書き方です。 > エクリプスに×エラーが出てないのに何故なのでしょう? Java言語の文法的には正しいけれど、Androidアプリケーションの形式になっていないからです。

manaria
質問者

お礼

なるほどという感じです。 納得です。助かりました。 回答ありがとうございました!

関連するQ&A

  • javaの実行環境

    javaの勉強をしようと思い、以下のhelloworldコードを書いてみました。 public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World\n"); } } それを、以下のようにlinux環境(ubuntu 10.10)でコンパイル実行しようとしたのですが、 javac HelloWorld.java java HelloWorld.class Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。そこで色々調べて jar cvmf manifest.mf test HelloWorld.class とjarファイルを作成して実行したところ、適切に"Hello World"が表示されました。 (manifest.mfの中身は"Main-Class: HelloWorld"1行だけです。) その後、このjarファイルをwindows環境に持っていって実行したのですが、 Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。 linux環境で、"echo $CLASSPATH"を実行しても何も表示されず、CLASSPATHはどこにも通っていないようです。 また、windows環境のDOS画面にてSETを実行し、環境変数を表示させてもCLASSPATHはありませんでした。(javaはインストール済みです。) で、質問です。 1)なぜjarにすると実行でき、classファイルのままでは実行出来なかったのでしょうか? 2)windows環境で、CLASSPATHを設定したほうが良いのでしょうか?設定する場合は、prgramfiles\java\binで良いのでしょうか? 以上、長くなり申し訳ないのですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • エラーなのですが…

    Javaコンパイルが成功して、クラスファイルは出来たのですがプロンプト画面上に Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/java と、表示されます。 原文は public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } です。なぜ例外が投げられるのでしょうか?すいませんが回答おねがいいたします。

    • ベストアンサー
    • Java
  • Eclipseのプロジェクトをシェルで実行する方法

    Eclipseで生成したプロジェクトを以下のコマンドでシェル実行したところ、以下のエラーが出ました。 /c/Apprication/pleiades-2020-06-java-win-64bit-jre_20200702/pleiades/workspace/home/ShellTest/shell_and_Java $ ./.do-java.sh 「エラー:メイン・クラスshell_and_Java.HelloWorldが見つからなかったかロードできませんでした。」 Eclipse上のフォルダ階層は以下となっています。 ■Eclipse上のプロジェクト ShellTest (プロジェクト名) →src  (フォルダ) →→shell_and_Java (パッケージ) →→→HelloWorld.java →bin →→shell_and_Java →→→HelloWorld.class (クラスファイル) →shell_and_Java (フォルダ) →→.do-java.sh (シェルスクリプト) ■do-java.shの内容 java shell_and_Java.HelloWorld ■HelloWorld.javaの内容 printlnで"HelloWorld"を表示する単純な処理です。 環境変数やクラスパスの設定など、それぞれ正しく設定できているのか、どの状態が正しいのか分からず困っています。。 よろしくお願いします。

    • ベストアンサー
    • Java
  • eclipseでの実行時のエラー

    まだまだeclipseを使い始めた初心者です。 そして最初の段階で躓いて困っていますのでみなさん力をお貸しください。 eclipse3.2を使用しています。 テストで「hello World」を実行しましたら「Launch failed no binaries」とエラーメッセージがでます。 このようなエラーはどのようなことに原因があるのでしょうか? ご存知の方いましたら教えてください。 ネットでいろいろ調べましたが原因究明にはいたらずに困っています。

  • Eclipseで実行できてコマンドプロンプトで実行できない

    最近Windowsパソコンを購入して、Javaを勉強し始めているものです。昨日まではコマンドプロンプトでもjavaコマンドが実行できていたのですが、本日実行してみると、 Exception in thread "main"java.lang.NOClassDefFoundError: と出てきてしまいます。Eclipseではコンソール画面に結果が表示されるのですが、コマンドプロンプトではエラーになってしまいます。環境変数のPATHの設定も問題ないようなのですがどうしたらよいのでしょうか?

  • EclipseでC++が突如実行出来なくなる。

    Windows2000上で Pleiades All in One Eclipse 3.4.2 C/C++ をインストール後、「C++プロジェクト」で 「Hello Wordl C++プロジェクト」を選択し 作成されたcpp内の ===================== int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! return 0; } ===================== 部分をカットして保存、実行すると、無論mainが無いので、 「ワクスペースでエラー」が発生します。 その後、カットした上記コードを元に戻して(ペーストして) 保存、実行すると、 「アプリケーション・ランチャー」 「起動に失敗しました。バイナリーが見つかりません。」 と出て、その後何度やっても同じメッセージになってしまい、 実行出来なくなります。 普通にコードを書いているときも、何故か突如この状態になってしまい、 「起動に失敗しました。バイナリーが見つかりません。」 のメッセージから抜け出せなくなり、以降お手上げ状態になる時があります。 何か書き換わってしまったのでしょうか? 解決策を教えて下さい。

  • eclipseが使えません

    はじめて質問させていただきます。よろしくお願いいたします。   最近Javaを始めようとしています。 ”JDK6 Update10”をダウンロード&インストールした後 PATHを通しコマンドプロンプトを使い "HelloWorld"のプログラムを実行したらちゃんとできたのですが 次に”eclipse ver3.4.1”をDLして"HelloWorld"のプログラムを実行しようとしたら ”エディターにはメイン型が含まれていません”というメッセージがでで、プログラムが動きませんでした。 ちなみに以下がプログラムの内容です。  public class test01 { public static void main (String args[]){ System.out.println("HelloWorld!"); }   何かしなくてはいけない設定などあるのでしょうか? インストール済みのJREというのは jdk1.6.0_10というものに設定しました。

  • JAVAの開発、実行環境について

    最近JAVAの勉強をスタートした者です。 環境はWinXPSP3 SUN Microsystems から最新版のJDKをDLし、環境変数も設定、定番の初歩『HelloWorld』表示に着手しました。 public class helloworld { public static void main(String args[]) { System.out.println("Hello Java World !"); } } javac helloworld.java でコンパイル java helloworld で実行 java.lang.UnsupportedClassVersionError というエラーがきました。 調べたところ、開発環境と実行環境のバージョンの違いが原因とのこと。 javac 1.6.0_06 java version "1.4.2_03" となっていました。 さて、このjava versionがどうやっても更新できません。 JREの最新版をDLしても変わらず。 コントロールパネルのJAVA(TM)コントロールでは、JAVAアプリケーションランタイムの設定は、1.0.6_06としっかり最新版になっています。 コマンドで表示すると1.4、コンパネからだと1.6、これはどうして異なるのでしょうか?というかむしろ別のもの? またどのように設定したら、問題が解決されるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • NoClassDefFoundErrorの解決方法

    netbeansでjava.lang.NoClassDefFoundErrorの解決方法を教えて下さい。 NetBeans IDE 7.0を使ってJAVAで、「Hell World !」を表示するものを 作りました。 ソースコード public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } NetBeansで、 「実行]-「ファイルを実行」とすると、「Hello World!」と表示されます。 正しく動きます。 しかし、 「実行」-「プロジェクトを実行」とすると、以下のエラーメッセージがでます。 java.lang.NoClassDefFoundError: helloworld/HelloWorld Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. Exception in thread "main" Java Result: 1 また、コマンドラインから以下の様に実行しても、実行してもエラーとなります。 C:\Program Files\Java\jdk1.6.0_25\bin>java.exe -jar C:\java\HelloWorld\dist\HelloWorld.jar Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWord Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. そこで、 ソースコードに、「package helloworld;」の記述を行いと期待した結果となりました。 NetBeansで、「実行」-「プロジェクトを実行」 コマンドラインから実行 しても、「Hello World!」と表示されます。 ソースコード package helloworld; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 何故、 「package helloworld;」の記述の追加で動いたのでしょうか。 あるとないとで、どう違うのでしょうか。 「package helloworld;」は、何を意味しているのでしょうか。 環境は、 JDK1.6(jdk1.6.0_25) クラスパスは未設定。

  • EclipseのDDMSでAndroidが見えない

    Eclipse Ver4.2でAndroidのアプリを勉強しています。 『Hello World!』という文字列を表示するだけのアプリを作りました。 エミュレータ上では問題なく動作しています。 この時のエミュレータはDDMSに表示されるのですが、実機(中華Pad)に USB接続をしてデバッグをしようと思っているのですがDDMS上に表示 されません。 実機(中華Pad)の設定のUSBデバッグはチェックしています。 またUSBマスストレージとしては正常に使用出来ます。 中華バッドはNovo7 Venusという機種名です。

    • ベストアンサー
    • Java

専門家に質問してみよう