私はAndroidプロジェクトを持っています。
プロジェクトのテストプロジェクトを作成しました developer.Android.comでADTを使用してEclipseからテストする のようにテスト構成を作成してみてください。
私の行動:
ログ:
Problems occurred when invoking code from plug-in: "org.Eclipse.jface".
Java.lang.NullPointerException
at com.Android.ide.Eclipse.adt.internal.launch.junit.InstrumentationRunnerValidator.<init>(InstrumentationRunnerValidator.Java:48)
at com.Android.ide.Eclipse.adt.internal.launch.junit.InstrumentationRunnerValidator.<init>(InstrumentationRunnerValidator.Java:59)
at com.Android.ide.Eclipse.adt.internal.launch.junit.AndroidJUnitLaunchConfigurationTab.loadInstrumentations(AndroidJUnitLaunchConfigurationTab.Java:954)
at com.Android.ide.Eclipse.adt.internal.launch.junit.AndroidJUnitLaunchConfigurationTab.initializeFrom(AndroidJUnitLaunchConfigurationTab.Java:335)
at org.Eclipse.debug.ui.AbstractLaunchConfigurationTabGroup.initializeFrom(AbstractLaunchConfigurationTabGroup.Java:86)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupWrapper.initializeFrom(LaunchConfigurationTabGroupWrapper.Java:194)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.displayInstanceTabs(LaunchConfigurationTabGroupViewer.Java:751)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer$8.run(LaunchConfigurationTabGroupViewer.Java:623)
at org.Eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.Java:70)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.inputChanged(LaunchConfigurationTabGroupViewer.Java:640)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput0(LaunchConfigurationTabGroupViewer.Java:602)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput(LaunchConfigurationTabGroupViewer.Java:578)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.handleLaunchConfigurationSelectionChanged(LaunchConfigurationsDialog.Java:941)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog$3.selectionChanged(LaunchConfigurationsDialog.Java:560)
at org.Eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.Java:888)
at org.Eclipse.core.runtime.SafeRunner.run(SafeRunner.Java:42)
at org.Eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.Java:49)
at org.Eclipse.jface.util.SafeRunnable.run(SafeRunnable.Java:175)
at org.Eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.Java:886)
at org.Eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.Java:1726)
at org.Eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.Java:1139)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView.handleConfigurationAdded(LaunchConfigurationView.Java:283)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView.access$1(LaunchConfigurationView.Java:272)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView$2.run(LaunchConfigurationView.Java:261)
at org.Eclipse.swt.widgets.RunnableLock.run(RunnableLock.Java:35)
at org.Eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.Java:135)
at org.Eclipse.swt.widgets.Display.runAsyncMessages(Display.Java:4140)
at org.Eclipse.swt.widgets.Display.readAndDispatch(Display.Java:3757)
at org.Eclipse.jface.window.Window.runEventLoop(Window.Java:825)
at org.Eclipse.jface.window.Window.open(Window.Java:801)
at org.Eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.open(LaunchConfigurationsDialog.Java:1132)
at org.Eclipse.debug.ui.DebugUITools$2.run(DebugUITools.Java:579)
at org.Eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.Java:70)
at org.Eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.Java:587)
at org.Eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.Java:521)
at org.Eclipse.debug.ui.actions.OpenLaunchDialogAction.run(OpenLaunchDialogAction.Java:81)
at org.Eclipse.jface.action.Action.runWithEvent(Action.Java:498)
at org.Eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.Java:584)
at org.Eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.Java:501)
at org.Eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.Java:411)
at org.Eclipse.swt.widgets.EventTable.sendEvent(EventTable.Java:84)
at org.Eclipse.swt.widgets.Widget.sendEvent(Widget.Java:1053)
at org.Eclipse.swt.widgets.Display.runDeferredEvents(Display.Java:4165)
at org.Eclipse.swt.widgets.Display.readAndDispatch(Display.Java:3754)
at org.Eclipse.jface.window.Window.runEventLoop(Window.Java:825)
at org.Eclipse.jface.window.Window.open(Window.Java:801)
at org.Eclipse.ui.internal.views.log.EventDetailsDialog.open(EventDetailsDialog.Java:180)
at org.Eclipse.ui.internal.views.log.EventDetailsDialogAction.run(EventDetailsDialogAction.Java:98)
at org.Eclipse.ui.internal.views.log.LogView$15.doubleClick(LogView.Java:535)
at org.Eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.Java:845)
at org.Eclipse.core.runtime.SafeRunner.run(SafeRunner.Java:42)
at org.Eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.Java:49)
at org.Eclipse.jface.util.SafeRunnable.run(SafeRunnable.Java:175)
at org.Eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.Java:843)
at org.Eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.Java:1462)
at org.Eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.Java:1246)
at org.Eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.Java:249)
at org.Eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.Java:246)
at org.Eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.Java:307)
at org.Eclipse.swt.widgets.EventTable.sendEvent(EventTable.Java:84)
at org.Eclipse.swt.widgets.Widget.sendEvent(Widget.Java:1053)
at org.Eclipse.swt.widgets.Display.runDeferredEvents(Display.Java:4165)
at org.Eclipse.swt.widgets.Display.readAndDispatch(Display.Java:3754)
at org.Eclipse.ui.internal.Workbench.runEventLoop(Workbench.Java:2696)
at org.Eclipse.ui.internal.Workbench.runUI(Workbench.Java:2660)
at org.Eclipse.ui.internal.Workbench.access$4(Workbench.Java:2494)
at org.Eclipse.ui.internal.Workbench$7.run(Workbench.Java:674)
at org.Eclipse.core.databinding.observable.Realm.runWithDefault(Realm.Java:332)
at org.Eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.Java:667)
at org.Eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.Java:149)
at org.Eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.Java:123)
at org.Eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.Java:196)
at org.Eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.Java:110)
at org.Eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.Java:79)
at org.Eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.Java:344)
at org.Eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.Java:179)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.Eclipse.equinox.launcher.Main.invokeFramework(Main.Java:622)
at org.Eclipse.equinox.launcher.Main.basicRun(Main.Java:577)
at org.Eclipse.equinox.launcher.Main.run(Main.Java:1410)
at org.Eclipse.equinox.launcher.Main.main(Main.Java:1386)
この構成は編集できますが、[適用]ボタンと[実行]ボタンが無効になり、構成が実行ボタンメニューに追加されません。
デバッグ構成を編集しようとすると、同じ問題が発生します。
システム:
私はEclipseインストールで動作するように見える回避策を見つけました。
これで、NullPointer例外を受け取ることなく、AndroidのJUnitテスト構成を編集できるようになりました。これを行った後、構成ファイルに追加されていたXMLノードがいくつかあります。 。したがって、バグはファイルの作成中にのみ発生し、ファイルの更新中には発生しないようです。
これが他の人の役に立つことを願っています。
以下は、機能するサンプル起動ファイルです(プロジェクト名がGemsTestであると想定しています)。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.Android.ide.Eclipse.adt.junit.launchConfigurationType">
<stringAttribute key="com.Android.ide.Eclipse.adt.commandline" value=""/>
<intAttribute key="com.Android.ide.Eclipse.adt.delay" value="0"/>
<booleanAttribute key="com.Android.ide.Eclipse.adt.nobootanim" value="false"/>
<intAttribute key="com.Android.ide.Eclipse.adt.speed" value="0"/>
<stringAttribute key="com.Android.ide.Eclipse.adt.target" value="AUTO"/>
<booleanAttribute key="com.Android.ide.Eclipse.adt.wipedata" value="false"/>
<stringAttribute key="org.Eclipse.jdt.junit.CONTAINER" value=""/>
<stringAttribute key="org.Eclipse.jdt.launching.MAIN_TYPE" value=""/>
<stringAttribute key="org.Eclipse.jdt.launching.PROJECT_ATTR" value="GemsTest"/>
</launchConfiguration>
回避策を見つけたようですが、奇妙なことです。
残念ながら、上記の解決策は私の場合には役に立ちません。
ここで問題についての議論がありますが、「すべてを最初から再インストールする」以外に提案された解決策はありません。
http://groups.google.com/group/Android-developers/browse_thread/thread/13559a5696988c5c
Eclipse 3.7.2、Android Tools 16.0.1
私はあなたの問題に対する答えを見つけたと思います。最初に、「Androidテストプロジェクト」としてテストプロジェクトを作成する代わりに、単純な「Javaプロジェクト」を作成し、それを「Androidプロジェクト」に採用しようとしているように見えます。
解決:
ここで、[実行]-> [構成の実行]に移動してAndroid JUnitテストの問題は発生しません。
お役に立てば幸いです。
EclipseはJavaで記述されているため、問題はAndroid作業中のプロジェクトではなくEclipseにある可能性があります。 nullpointerexceptionがあり、ユーザーが作成したデバイス定義に基づくAVDを削除したため(これが具体的に関連しているかどうかは不明です)、AVDを変更しようとしてもnullpointerexceptionが返されました。最初のAVDを再作成し、エラーは消えた。