我想在Android中創建一個庫項目,並在其他項目中使用該庫。包括JAR庫到Android項目,並從它開始一個活動
我創建了一個簡單的庫項目,其中一個佈局顯示一些文本。檢查它被設置爲'is Library'並且已經去。
我把'bin'目錄中創建的Jar文件複製到'assets'文件夾中的一個新項目中(同樣嘗試了'libs'方法)。
我檢查過'屬性 - > java構建路徑 - >訂單和導出',它在那裏並被選中。
在應用程序中,我試圖從庫中推出的活動,使用:
Button btnLoad = (Button)findViewById(R.id.btnLoadLibrary);
btnLoad.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, LibraryActivity.class);
startActivityForResult(intent, 0);
}
});
已經導入庫:這裏
import com.example.superlibrary.LibraryActivity;
沒有錯誤。
然後,當我啓動應用程序,並按下按鈕,我得到:
05-01 20:24:07.030: E/AndroidRuntime(19011): FATAL EXCEPTION: main
05-01 20:24:07.030: E/AndroidRuntime(19011): java.lang.NoClassDefFoundError: com.example.superlibrary.R$layout
05-01 20:24:07.030: E/AndroidRuntime(19011): at com.example.superlibrary.LibraryActivity.onCreate(LibraryActivity.java:12)
05-01 20:24:07.030: E/AndroidRuntime(19011): at android.app.Activity.performCreate(Activity.java:5206)
05-01 20:24:07.030: E/AndroidRuntime(19011): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
爲了確保,我已經檢查應用程序的清單文件,我必須有:
<activity
android:name="com.example.superlibrary.LibraryActivity"
android:label="LibraryActivity" >
</activity>
所以它被認可幷包括在內...
任何想法爲什麼會發生這個錯誤? (java.lang.NoClassDefFoundError)
謝謝!
我開始一個活動認爲在SDK-17中你可以這樣做 - 至少這是在某些地方寫的。 – Roman 2013-05-01 17:41:55
如果沒有 - 是否有隱藏所有庫代碼的方法? – Roman 2013-05-01 17:42:17
@roman我剛剛從文檔中引用了上述內容。我沒有看到你在第一條評論 – Raghunandan 2013-05-01 17:44:56