Android向けのプログラミングを試してみることにしました。チュートリアルを開始しましたが、最初のプロジェクトが自動的に作成するアプリケーションを実行できませんでした。コンピューターの設定が間違っているのではないかと思いますが、どこでエラーを検索すればよいかわかりません。
チュートリアルでは、新しく作成したプロジェクトのディレクトリに移動して実行するように指示されていますant debug
。これは私にエラーをスローします: java.lang.NoClassDefFoundError: com.android.sdklib.internal.build.DebugKeyProvider
. SDK のインストールに問題があると思われますが、何が問題なのか、どのように修復すればよいのかわかりません。
私のコンピューターは openSUSE 12.1 64 ビットを実行しています。Oracte JDK バージョン 1.7.0_04 がインストールされており、ツールとプラットフォーム Android 4.0 および 4.0.3 を含む Android SDK があります。インストール後、パス環境に Android ツール フォルダーを追加し、電話用の udev ルールを追加しましたが、それ以上のカスタマイズは行っていません。Adb は私の電話を認識し、ddms でスクリーンショットをキャプチャできます。私はエクリプスを使用していません。
セットアップの一部を見逃しましたか?この問題のトラブルシューティング方法を教えてください。
更新同じ問題を抱えている人に関するメーリング リストのディスカッションを見つけました。彼は、/usr/bin 内の「keytool」というシンボリック リンクを更新して、正しいファイルを指すようにすることで、この問題を解決しました。そのようなリンクがなかったので、作成しました。問題は解決しません。スレッドに回答した誰かが、「jarutil.jar」というファイルが SDK にない可能性があると示唆しました。最初から再インストールした後でも、SDK にそのようなファイルはありません。議論は 1 年以上前のものであるため、そのようなファイルが現在のバージョンに存在する必要があるかどうかさえわかりません。
ant debug
コマンドからの完全な出力は次のとおりです。
rumtscho@bradbury:~/dev/learn-android/MyFirstApp> ant デバッグ ビルドファイル: /home/rumtscho/dev/learn-android/MyFirstApp/build.xml
-設定モード チェック:
-set-debug-files:
-set-debug-mode:
-デバッグ難読化チェック:
-setup: [echo] 必要に応じて出力ディレクトリを作成しています... [echo] MyFirstApp の情報を収集しています... [setup] Android SDK Tools Revision 19 [setup] プロジェクト ターゲット: Android 4.0.3 [setup] API レベル: 15 [ setup] [setup] ------------------ [setup] ライブラリの依存関係を解決しています: [setup] ライブラリの依存関係はありません。[セットアップ] [セットアップ] ------------------ [セットアップ] API<=15: クラスパスにannotations.jarを追加します。[セットアップ] [セットアップ] ------------------ [セットアップ] 警告: minSdkVersion 値が設定されていません。アプリケーションはすべての Android バージョンにインストールされます。
-ビルドセットアップ:
-ビルド前:
-code-gen: [echo] ---------- [echo] aidl ファイルの処理... [aidl] コンパイルする AIDL ファイルがありません。[echo] ---------- [echo] RenderScript ファイルの処理中... [renderscript] コンパイルする RenderScript ファイルがありません。[echo] ---------- [echo] リソースの処理... [aapt] 変更されたリソースはありません。R.java と Manifest.java はそのままです。[echo] ---------- [echo] BuildConfig クラスの処理... [buildconfig] BuildConfig クラスを生成しています。
-プリコンパイル:
-compile: [javac] 1 つのソース ファイルを /home/rumtscho/dev/learn-android/MyFirstApp/bin/classes にコンパイルします。
-ポストコンパイル:
-難読化:
-dex: [dex] 変更された入力ファイルが見つかりました [dex] コンパイル済みファイルと外部ライブラリを /home/rumtscho/dev/learn-android/MyFirstApp/bin/classes.dex に変換しています...
-crunch: [crunch] ソース ディレクトリの PNG ファイルのクランチ: /home/rumtscho/dev/learn-android/MyFirstApp/res [crunch] 宛先ディレクトリへ: /home/rumtscho/dev/learn-android/MyFirstApp/bin/res
[クランチ]キャッシュを更新するために0個のPNGファイルをクランチしました-package-resources: [aapt] 完全なリソース パッケージを作成しています...
-package: [apkbuilder] 現在のビルド タイプは以前のビルドとは異なります: apkbuilder を強制的に実行します。[apkbuilder] MyFirstApp-debug-unaligned.apk を作成し、デバッグ キーで署名します...
ビルドに失敗しました /home/rumtscho/android-sdk-linux/tools/ant/build.xml:886: この行の実行中に次のエラーが発生しました: /home/rumtscho/android-sdk-linux/tools/ant/build.xml :897: この行の実行中に次のエラーが発生しました: /home/rumtscho/android-sdk-linux/tools/ant/build.xml:307: java.lang.NoClassDefFoundError: com.android.sdklib.internal.build.DebugKeyProvider java.lang.Class.initializeClass(libgcj.so.12) で com.android.sdklib.build.ApkBuilder.getDebugKeystore(ApkBuilder.java:919) で com.android.ant.ApkBuilderTask.execute(ApkBuilderTask.java:334) )
org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:291) で
java.lang.reflect.Method.invoke(libgcj.so.12) で org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) で org.apache.tools.ant.Task.perform で(Task.java:348) org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
で org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
で java. org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) の lang.reflect.Method.invoke(libgcj.so.12) org.apache.tools.ant.Task.perform(Task. java:348) org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) で org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) で
java.lang.reflect.Method.invoke(libgcj.so.12) で org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) で org.apache.tools.ant.Task.perform で(Task.java:348) org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
com.android.ant.IfElseTask.execute(IfElseTask.java:124) で org.apache. org.apache.tools.ant.dispatch.DispatchUtils.execute
(DispatchUtils.java: 106) org.apache.tools.ant.Task.perform(Task.java:348) で org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
で com.android.ant.IfElseTask .execute(IfElseTask.java:124) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
java.lang.reflect.Method.invoke(libgcj.so.12) で org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) で org.apache.tools.ant.Task.perform で(Task.java:348) org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
で org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
で java. org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) の lang.reflect.Method.invoke(libgcj.so.12) org.apache.tools.ant.Task.perform(Task. java:348) org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) で org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) で
java.lang.reflect.Method.invoke(libgcj.so.12) で org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) で org.apache.tools.ant.Task.perform で(Task.java:348) org.apache.tools.ant.Target.execute(Target.java:390) で org.apache.tools.ant.Target.performTasks(Target.java:411) で org.apache. tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor. java:41) org.apache.tools.ant.Project.executeTargets (Project.java:1251) で
org.apache.tools.ant.Main.runBuild(Main.java:809) で org.apache.tools.ant.Main.startAnt(Main.java:217) で org.apache.tools.ant.launch.Launcher で.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 原因: java.lang.ClassNotFoundException: java.security.KeyStore$ProtectionParameter at org.apache .tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1361) at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1311) at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java) :1064) at java.lang.ClassLoader.loadClass(libgcj.so.12) at java.lang.Class.initializeClass(libgcj.so.12) ...48 もっと見る合計時間: 3 秒