2012-03-23 11 views
9

私は私の問題を説明するための簡単なアプリケーションを作ってきた17Jarファイルの問題

を解放するために、最新のADT更新以降のトリッキーな問題を抱えているように見える私は場合、私は知りません間違ったことをする。私のアプリケーションの主なアクティビティは、サポートパッケージのFragmentActivityを継承していて、起動時に何らかの原因でアプリケーションがクラッシュします。

例として、私はサンプルプロジェクトを作成しました。

まずが、ここに私のダミークラス、DummyProjectActivityのコードは、非常に簡単です:

public class DummyProjectActivity extends FragmentActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

次に、マニフェストがあります:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="be.emich.labs" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".DummyProjectActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

の.jarファイルが正しくインポートされこのスタックトレースを取得しています:

E/AndroidRuntime(11509): FATAL EXCEPTION: main 
E/AndroidRuntime(11509): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{be.emich.labs/be.emich.labs.DummyProjectActivity}: java.lang.ClassNotFoundException: be.emich.labs.DummyProjectActivity 
E/AndroidRuntime(11509): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879) 
E/AndroidRuntime(11509): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 
E/AndroidRuntime(11509): at android.app.ActivityThread.access$600(ActivityThread.java:122) 
E/AndroidRuntime(11509): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) 
E/AndroidRuntime(11509): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(11509): at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(11509): at android.app.ActivityThread.main(ActivityThread.java:4340) 
E/AndroidRuntime(11509): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(11509): at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(11509): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
E/AndroidRuntime(11509): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
E/AndroidRuntime(11509): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(11509): Caused by: java.lang.ClassNotFoundException: be.emich.labs.DummyProjectActivity 
E/AndroidRuntime(11509): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
E/AndroidRuntime(11509): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
E/AndroidRuntime(11509): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
E/AndroidRuntime(11509): at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
E/AndroidRuntime(11509): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870) 
E/AndroidRuntime(11509): ... 11 more 

私はここで間違っていますか?これは最新の開発ツールのバグでしょうか?

互換性ライブラリのFragmentActivityを使用するすべてのプロジェクトでこの問題が発生します。私は何が間違っているかは分かりません。この問題を抱えている人は誰ですか?ヘルプは非常に高く評価されます。私はFragmentActivityを継承するアクティビティに問題はありません。私はアプリケーションをアンインストール/再インストールしました。さまざまな「クリーンプロジェクト」を完了しました。 Eclipseを再起動します。

更新:問題は明らかに互換パッケージにはリンクされていませんが、ADT r17がjarファイルのリンクを処理する方法は明らかです。含まれるJarファイルはlibs /フォルダに置かれ、ADTはそれらを自動的にリンクします。それ以外の場合は、APKから欠落し、jarfileのコードが呼び出されるたびにアプリがクラッシュします。

+0

私は、.jarファイルの代わりにソースをインポートしてみます。それが何か変わるかどうかを見てみましょう。たぶん、.jarファイルに問題があります。 – eMich

+0

上記のログ出力では、例外の前に "VFY:署名で参照されているクラスを見つけることができません"と発声しましたか? – jfritz42

答えて

6

最新のリリースツールの右クリック>自分のプロジェクトで互換性パッケージを追加する機能が動作しなくなり、jarファイルをプロジェクトのプロパティから手動で追加するまでは、私は "Compatibility package"をやり直してみましたが、r17以来、これは私のマシンで修正されているようです。これで問題は解決しました。

+2

私のjarファイルは "lib"というフォルダ内にあって、なんらかの理由でAPKには含まれていませんでした。それらをADT r17と自動的にリンクするlibsに移動すると、この問題が修正されました。 – eMich

関連する問題