11

OpenGL ES 10 に基づく新しいプロジェクトでこのエラーが発生しています。

  09-03 12:44:07.870: W/dalvikvm(599): Unable to resolve superclass of Lcom/example/basicgl10test/MainActivity; (416)
  09-03 12:44:07.870: W/dalvikvm(599): Link of class 'Lcom/example/basicgl10test/MainActivity;' failed
  09-03 12:44:07.870: D/AndroidRuntime(599): Shutting down VM
  09-03 12:44:07.910: W/dalvikvm(599): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
  09-03 12:44:07.920: I/dalvikvm(599): Wrote stack traces to '/data/anr/traces.txt'
  09-03 12:44:07.980: E/AndroidRuntime(599): FATAL EXCEPTION: main
  09-03 12:44:07.980: E/AndroidRuntime(599): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.basicgl10test/com.example.basicgl10test.MainActivity}: java.lang.ClassNotFoundException: com.example.basicgl10test.MainActivity
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.os.Handler.dispatchMessage(Handler.java:99)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.os.Looper.loop(Looper.java:137)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.main(ActivityThread.java:4424)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.reflect.Method.invokeNative(Native Method)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.reflect.Method.invoke(Method.java:511)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at dalvik.system.NativeStart.main(Native Method)
  09-03 12:44:07.980: E/AndroidRuntime(599): Caused by: java.lang.ClassNotFoundException: com.example.basicgl10test.MainActivity
  09-03 12:44:07.980: E/AndroidRuntime(599):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
  09-03 12:44:07.980: E/AndroidRuntime(599):    ... 11 more
  09-03 12:44:08.061: W/ActivityManager(92):   Force finishing activity com.example.basicgl10test/.MainActivity

私のアクティビティクラスは次のようなものです:

  package com.example.basicgl10test;
  import com.example.gl10gameadvlib.GL10GameActivity;
  import com.example.gl10gameadvlib.Screen;
  public class MainActivity extends GL10GameActivity {

親アクティビティは、別のパッケージでは次のようになります。

  package com.example.gl10gameadvlib;
  import javax.microedition.khronos.egl.EGLConfig;
  import javax.microedition.khronos.opengles.GL10;
  public abstract class GL10GameActivity extends Activity {

ビルド中にエラーはありません。新しいプロジェクトを再作成し、クリーン+ビルドも行いましたが、問題は解決しません。

Android 4.0 Emulator で Eclipse IDE を使用しています。エミュレーターまたは実際のデバイスで問題が発生します。

ありがとう

4

5 に答える 5

63

GOOGLE IO 2013の直後に、 ADT プラグイン、Android SDK ツールをリビジョン 22 に、Android SDK プラットフォーム ツールをリビジョン 17 に 更新したときに、この問題に直面しました。

以前に機能していたすべてのプロジェクトは、更新後に理由もなく ClassNotFoundException をスローし始めました。その後、Android Private Libraries という名前の新しい Android パッケージがあることに気付きました。何時間も試してみた結果、これを修正する方法が見つかりました。

プロジェクトを右クリックしてから

ビルドパスに移動 -> ビルド パスの構成 -> 注文とエクスポート

そこにいるときは、Android Private Librariesをチェックしてから OK をクリックしてください。

それでも問題が解決しない場合は、bin フォルダー内のすべてのファイルを削除し、プロジェクトを再構築してください。

これで問題が解決することを願っています

于 2013-05-17T10:47:48.480 に答える
3

ビルド時に jar が実際にエクスポートされていることを確認するには、次のいずれかを行う必要があります。

  • libsフォルダに入れて
  • または、プロジェクト プロパティ > Java ビルド パス > 注文とエクスポート タブで、jar に対応するチェックボックスに入力します。
于 2012-09-03T07:37:55.453 に答える
0

Eclipse 内でリンクする場合を除いて、いくつかの外部ライブラリを使用している場合は、それらをアプリケーションの "libs" フォルダーに配置することを忘れないでください。/src、/res などの近くにある必要があります。/libs/yourLibrary.jar だけです。

このライブラリを APK に含めるように (正確ではありませんが) コンパイラに指示します。

于 2012-09-03T07:37:46.513 に答える
0

実際、インポートしているライブラリも Android プロジェクトであり、ライブラリとして定義しています。他のプロジェクトでは、同じように機能しています。

私のマニフェストは次のとおりです。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.basicgl10test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <!-- Only Single Touch and OpenGLES less than 2.0 versions used by default -->
    <!-- We will use both multi and single touch handlers by using a class based SDK Version qualifier -->
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

</manifest>
于 2012-09-04T19:12:26.943 に答える