66

GoogleAppEngine ソース (SDK 1.7.0) にブレークポイントを配置しようとしていますが、IDEA Ultimate (11.0.2) は私に言い続けますWarning: No executable code found at line 482 in class com.google.appengine.api.memcache.AsyncMemcacheServiceImpl

単体テストからコードを実行するときと、開発サーバーを起動するときの両方で、このエラー メッセージが表示されます。

かなりうるさいです。とにかく、ソースは外部 (IDEA ホームとプロジェクト ホームの両方に関連する) ディレクトリにあり、jar ファイルは Appengine SDK lib ディレクトリの下にあります。

jar ファイルがプロジェクト ライブラリとしてモジュールに追加され、ソースがこのライブラリに添付されます。私もモジュールの依存関係をいじっていましたが、運がありませんでした。最後に、このライブラリを Compile スコープに入れることにしましたが、SDK が実行時にこれらの jar を提供するため、それは悪い考えでした。そのため、Provided スコープにフォールバックすることにしました。

モジュールの依存関係タブのエクスポートチェックボックスも試しましたが、これは無関係だと思います.Webヘルプによると、エクスポートは依存モジュールがあり、これらのモジュールでもライブラリを利用できるようにしたい場合にのみ重要です。

とにかく、この質問は4年前にも発生しました。では、この問題を解決するのは本当に難しいのでしょうか?

私は今とてもがっかりしています。これまでIDEAに問題はありませんでした...この問題は他の人にも発生したことがわかったので、これはユニークではないと思います.

どんな助けでも大歓迎です。


javap以下の実験のために質問を編集しました。クラスとソースが同期していないようです。SVN から 1.7.0 関連のリビジョンをチェックアウトしました。1.7.0 SDK を使用しているため、これらはまったく同期していないはずです。

4

18 に答える 18

85

同様の問題があり、さまざまな試みが適用されました。以下は私の通常の手順です:

  1. Maven 依存関係を使用している場合は、Maven プロジェクト -> 更新に移動します。
  2. それでもうまくいかない場合はトップメニュー→ビルド→プロジェクトのリビルドをお試しください
  3. それでも問題が解決しない場合は、トップ メニュー --> ファイル --> キャッシュの無効化/再起動を試してください。
  4. それでもうまくいかない場合は、$CATALINA_BASE/bin/catalina.sh 停止してから開始します

この後、通常、問題の 99% をカバーします。それ以外の場合は、おそらく他の可能性を検討する必要があります。

于 2014-04-23T18:39:00.563 に答える
9

IDEAが「実行可能なコードが見つかりません」と言っていると報告された他のケースをいくつか見つけました。よくあるパターンは、デバッグ情報なしでビルドされたコードをデバッグしようとしたことです。「-g」フラグ (または同等のフラグ) を設定してコンパイルしていることを確認してください。

于 2012-07-21T11:25:58.337 に答える
4

質問はかなり古いですが、私の経験が将来誰かに役立つかもしれないと思いました. 私の場合、デバッグ情報でコンパイルされていないコードをデバッグしようとしていました。変更前の元の親 pom ファイルがビルド セクションで以下のようになっている maven を使用しています。

<build>
    <pluginManagement>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
            <configuration>
              <target>${javaCompilerVersion}</target>
              <source>${javaCompilerVersion}</source>
              <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!--More plugins...-->
     </pluginManagement>
</build>

上記の部分を以下のように変更しました。

<build>
    <pluginManagement>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
            <configuration>
              <target>${javaCompilerVersion}</target>
              <source>${javaCompilerVersion}</source>
              <encoding>UTF-8</encoding>
              <debug>true</debug>
              <debuglevel>lines,vars,source</debuglevel>
            </configuration>
        </plugin>
        <!--More plugins...-->
     </pluginManagement>
</build>

追加された<debug>and<debuglevel>要素に注意してください。debuglevel 要素は、コンマで区切られた 3 つの引数の任意の組み合わせを取ることができます。

この変更を加えてコンパイルした後、最終的に IDEA にブレークポイントを設定することができました。

于 2016-03-04T13:20:48.513 に答える
4

問題の本質は、JVM が、デバッガーによって使用されているソースと一致しないクラス ファイル (単純なクラスまたはクラス パスの jar からロードされたクラス) を実行することです。これが理解できれば、解決策は簡単です。ソースが実行中のクラスを表していることを確認してください。したがって、問題を修正するには、ソースをクラスなどに更新同期することができます。

于 2016-06-30T13:10:29.593 に答える
3

メニュー --> ファイル --> キャッシュの無効化/再起動

これはIntelliJ 13.0.2の下で私にとってはうまくいきました

于 2015-04-13T06:29:06.807 に答える
2

同様の問題がありましたが、Tomcat 構成の [展開] タブの [サーバーの起動時に展開] の間違いが原因でした。誤って ":war 爆発" と非常によく似たプロジェクトに変更してしまいました。元に戻したらうまくいきました。

于 2013-07-31T20:34:39.257 に答える
2

同じ問題があり、サーバー上のコードのバージョンとデバッグ中のコードのバージョンが異なることがわかりました。コードを同期した後、問題は解決しました。

于 2015-07-07T01:08:19.790 に答える
1

一部のサーバーを使用している場合、サーバーは「低メモリ モード」になります。つまり、無効にしたオプションやキャッシュに関係なく、サーバーはデバッグされません。

サーバーを停止し、Java に渡されるオプションのメモリ設定を増やして、サーバーを再起動する必要があります。ログをチェックして、「メモリ不足モードで実行中」などのレポートを取得していないことを確認します。

于 2015-06-03T11:53:33.227 に答える
1

Proguard を実行していないことを確認してください。それは私を助けました。

于 2014-10-28T13:45:39.973 に答える
0

私の場合、Tomcatでデバッグ構成を使用して同じ問題が発生しました。上記のすべてを試しましたが、何もしませんでした。Tomcatを再構成したとき(デバッグ>構成の編集> Tomcatを削除>最初から再度追加)、最終的に機能していました:)

于 2016-07-12T12:02:39.377 に答える
0

私は Intellij プラグインに取り組んでいましたが、サンドボックス Intellij がポップアップしたとき、私の問題を最終的に修正したのは、サンドボックス intellij がポップアップしたら、そこから再構築したことでした。

その後、Intellij とサンドボックス Intellij の両方を構築し、最終的に同期しました。

于 2018-10-02T12:48:54.773 に答える
0

ディスク容量を確認し、メモリを解放してください。ディスク容量が不足している場合、サーバーが「低メモリ モード」でなくても、intelliJ はデバッグに必要なクラスをキャッシュするためのスペースを割り当てません。その結果、ブレークポイントを設定できなくなります。

于 2017-06-13T18:30:28.890 に答える