2017-03-11 2 views
0

私は、1つのアクティビティといくつかのアプリケーションクラスが含まれている単純なアプリケーションを作成しようとしています。私は最新のAndroidスタジオ、新しく生成されたベアボーンプロジェクト、APIレベル23(アンドロイド6.0.1、私の電話用)を使用しています。シンプルなAndroid StudioプロジェクトでNoClassDefFoundErrorが得られます

私が働いているアクティビティの外部にあるプロジェクトクラスを呼び出すときにVMで実行時にエラーが発生することを除いて、ほとんどの場合、アプリケーションを展開、開いて使用することができます。起こることになっているもの

はそれが

  • 行い、呼び出す外部クラスを呼び出します

    1. アクティビティログで、外部のクラスは、それが深刻な仕事
    2. をやって開始されますいくつかの非常にマイナーな作品
    3. 外部クラスのログを行います

    最初のlog文に達して突然実行が停止したように見え、外部クラスのログ行は決して到着しません。その後1分後にエラー。私の外部のクラスがコンパイルなどに含まれていないと感じる。

    私はしばらくの間Java開発者でしたが、私はアンドロイド開発者とgradleの経験の横にあります。ここで

    は私のプロジェクトです:https://gitlab.com/Marnes/leaumar.net-android

    関連クラスは、関連するコードセクションがアップロードテストが行​​われ、PresetUploadが呼び出されHomeActivity、の下で​​

    です。データが投稿される直前のメッセージは表示されません。

    03-11 13:39:49.998 5295-5295/leaumar.net.filedump I/leaumar.net.filedump.HomeActivity: user wants to test upload
    03-11 13:39:49.999 5295-5295/leaumar.net.filedump I/art: Rejecting re-init on previously-failed class java.lang.Class
    03-11 13:39:49.999 5295-5295/leaumar.net.filedump I/art: Rejecting re-init on previously-failed class java.lang.Class
    03-11 13:41:05.139 5295-5381/leaumar.net.filedump I/art: Rejecting re-init on previously-failed class java.lang.Class
    03-11 13:41:05.140 5295-5381/leaumar.net.filedump E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
    Process: leaumar.net.filedump, PID: 5295
    java.lang.RuntimeException: An error occurred while executing doInBackground()
    ...
    Caused by: java.lang.NoClassDefFoundError: leaumar.net.filedump.http.PresetUpload$1
    ...
    03-11 13:41:05.141 5295-5295/leaumar.net.filedump I/Choreographer: Skipped 4508 frames! The application may be doing too much work on its main thread.

  • +0

    この種の例外の性質を理解するために検索エンジンを試したことはありますか? – GhostCat

    +0

    私はそれが何を意味するのか知っています、私はjavaに新しい人ではありません。私はアンドロイドデベロッパーとグラデルとそのような(私はいつもmavenとデスクトップJavaを使用した)新しいです。なぜ私はクラスが作成されていないこと、それらを作成していないか、なぜ消えているのか、主なアクティビティが実行されている間に私のプロジェクトパッケージがコンパイルされていないのか、私の全体的な問題のグーグルでは、「デフォルトでアクティビティが置かれているパッケージにプロジェクトクラスを追加し、gradle.buildのパッケージへの参照を追加する」などの作業をすることはできません。 – Marnes

    +0

    十分に公正。しかし、あなたはその質問を編集したいかもしれません、我々はそのスタックトレースの何百行も必要としません。私個人的には、ステップバイステップのチュートリアルから始めて、さまざまな設定を正しく行う方法を学びます。そして記録のために、私はここでdownvoteしませんでした。 – GhostCat

    答えて

    0

    あなたが

    1. ことになっているが
    2. 新しいモジュールを追加するタイプ
    3. であなたのクラスを置くよう「アンドロイドライブラリ」を選択した構造を予測し、これを設定する行きますあなたのメインモジュールの依存関係としての新しいモジュール

    IDEでうまくいくように見えてもビルドエラーが発生する...

    :impl:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
    An exception has occurred in the compiler (1.8.0_91). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
    com.sun.tools.javac.code.Symbol$CompletionFailure: class file for java.lang.invoke.MethodType not found
    :impl:compileReleaseJavaWithJavac FAILED

    +0

    これを解決するために、ライブラリモジュールの言語レベルを1.7に下げ、java 8の機能を削除しました... – Marnes

    関連する問題