Tôi đang cố gắng tạo các nhận xét javadoc trong Eclipse cho Dự án Android của tôi, nhưng tôi tiếp tục nhận được một NullPointerException. Vấn đề xảy ra chỉ khi tôi cố gắng để tạo ra javadocs cho các lớp học nhập khẩu Android Compatibility Library (android.support), mà tôi đã đính kèm như một jar bên ngoài. Tôi cũng tham khảo Android 2.2 và một số Dự án Thư viện, nhưng những dự án này không gây ra lỗi này.Javadoc cho dự án Android trong Eclipse không thành công với NullPointerException
Loading source file /home/travisc/Desktop/Android/App/workspace/Restaurant/src/com/yellowbrickcode/restaurant/StartupActivity.java...
Constructing Javadoc information...
StartupActivity.java:3: package android.content does not exist
import android.content.ContentValues;
^
StartupActivity.java:4: package android.content does not exist
import android.content.Intent;
^
StartupActivity.java:5: package android.content does not exist
import android.content.SharedPreferences;
^
StartupActivity.java:6: package android.content.SharedPreferences does not exist
import android.content.SharedPreferences.Editor;
^
StartupActivity.java:7: package android.os does not exist
import android.os.Bundle;
^
StartupActivity.java:8: package android.preference does not exist
import android.preference.PreferenceManager;
^
StartupActivity.java:10: package android.view does not exist
import android.view.Menu;
^
StartupActivity.java:11: package android.view does not exist
import android.view.MenuItem;
^
StartupActivity.java:12: package android.view does not exist
import android.view.View;
^
StartupActivity.java:14: package android.view does not exist
import android.view.ViewGroup;
^
StartupActivity.java:15: package android.widget does not exist
import android.widget.ImageButton;
^
StartupActivity.java:27: cannot access android.app.Activity
class file for android.app.Activity not found
public class StartupActivity extends FragmentActivity {
^
StartupActivity.java:29: cannot find symbol
symbol : class OnClickListener
location: class com.yellowbrickcode.restaurant.StartupActivity
private OnClickListener mMenuListener = new OnClickListener() {
^
StartupActivity.java:38: cannot find symbol
symbol : class OnClickListener
location: class com.yellowbrickcode.restaurant.StartupActivity
private OnClickListener mAccountListener = new OnClickListener() {
^
StartupActivity.java:49: cannot find symbol
symbol : class OnClickListener
location: class com.yellowbrickcode.restaurant.StartupActivity
private OnClickListener mCheckinListener = new OnClickListener() {
^
StartupActivity.java:68: cannot find symbol
symbol : class Menu
location: class com.yellowbrickcode.restaurant.StartupActivity
public boolean onCreateOptionsMenu(Menu menu) {
^
StartupActivity.java:74: cannot find symbol
symbol : class MenuItem
location: class com.yellowbrickcode.restaurant.StartupActivity
public boolean onOptionsItemSelected(MenuItem item) {
^
StartupActivity.java:80: cannot find symbol
symbol : class Bundle
location: class com.yellowbrickcode.restaurant.StartupActivity
protected void onCreate(Bundle savedInstanceState) {
^
PushService.java:14: package org.json does not exist
import org.json.JSONException;
^
PushService.java:16: package android.app does not exist
import android.app.AlarmManager;
^
PushService.java:17: package android.app does not exist
import android.app.IntentService;
^
PushService.java:18: package android.app does not exist
import android.app.Notification;
^
PushService.java:19: package android.app does not exist
import android.app.NotificationManager;
^
PushService.java:20: package android.app does not exist
import android.app.PendingIntent;
^
PushService.java:21: package android.content does not exist
import android.content.BroadcastReceiver;
^
PushService.java:22: package android.content does not exist
import android.content.Context;
^
PushService.java:23: package android.content does not exist
import android.content.Intent;
^
PushService.java:24: package android.content does not exist
import android.content.SharedPreferences;
^
PushService.java:25: package android.content.SharedPreferences does not exist
import android.content.SharedPreferences.Editor;
^
PushService.java:26: package android.os does not exist
import android.os.Binder;
^
PushService.java:27: package android.os does not exist
import android.os.IBinder;
^
PushService.java:28: package android.os does not exist
import android.os.SystemClock;
^
PushService.java:29: package android.preference does not exist
import android.preference.PreferenceManager;
^
PushService.java:30: package android.util does not exist
import android.util.Log;
^
RemoteUpdater.java:13: package org.json does not exist
import org.json.JSONArray;
^
RemoteUpdater.java:14: package org.json does not exist
import org.json.JSONException;
^
RemoteUpdater.java:15: package org.json does not exist
import org.json.JSONObject;
^
RemoteUpdater.java:17: package android.content does not exist
import android.content.ContentResolver;
^
RemoteUpdater.java:18: package android.content does not exist
import android.content.ContentValues;
^
RemoteUpdater.java:20: package android.database does not exist
import android.database.Cursor;
^
RemoteUpdater.java:21: package android.database does not exist
import android.database.SQLException;
^
RemoteUpdater.java:23: package android.net does not exist
import android.net.Uri;
^
RemoteUpdater.java:24: package android.util does not exist
import android.util.Log;
^
PushService.java:54: cannot find symbol
symbol: class IntentService
public class PushService extends IntentService implements Saveable {
^
PushService.java:681: cannot find symbol
symbol : class Binder
location: class com.yellowbrickcode.restaurant.c2dm.PushService
protected class PushBinder extends Binder {
^
PushService.java:178: cannot find symbol
symbol : class Context
location: class com.yellowbrickcode.restaurant.c2dm.PushService
public boolean clear(Context ctx) {
^
PushService.java:190: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
public IBinder onBind(Intent intent) {
^
PushService.java:190: cannot find symbol
symbol : class IBinder
location: class com.yellowbrickcode.restaurant.c2dm.PushService
public IBinder onBind(Intent intent) {
^
PushService.java:205: cannot find symbol
symbol : class Context
location: class com.yellowbrickcode.restaurant.c2dm.PushService
public boolean restore(Context ctx) {
^
PushService.java:228: cannot find symbol
symbol : class Context
location: class com.yellowbrickcode.restaurant.c2dm.PushService
public boolean save(Context ctx) {
^
PushService.java:254: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
protected void onHandleIntent(Intent intent) {
^
PushService.java:357: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void receiveMessage(Intent intent) {
^
PushService.java:393: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void receiveRegistration(Intent intent) throws JSONException {
^
PushService.java:393: cannot find symbol
symbol : class JSONException
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void receiveRegistration(Intent intent) throws JSONException {
^
PushService.java:416: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void register(Intent intent) {
^
PushService.java:456: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void retryAction(Intent intent) {
^
PushService.java:498: cannot find symbol
symbol : class JSONException
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void unregister() throws JSONException{
^
PushService.java:523: cannot find symbol
symbol : class JSONException
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void unregisterServer(String regId) throws JSONException{
^
PushService.java:545: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void updateRegistration(Intent intent) throws JSONException {
^
PushService.java:545: cannot find symbol
symbol : class JSONException
location: class com.yellowbrickcode.restaurant.c2dm.PushService
private void updateRegistration(Intent intent) throws JSONException {
^
RemoteUpdater.java:72: cannot find symbol
symbol : class ContentValues
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private ArrayList<ContentValues> mInsertedRecords;
^
RemoteUpdater.java:77: cannot find symbol
symbol : class ContentValues
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private ArrayList<ContentValues> mInsertedMappings;
^
RemoteUpdater.java:86: cannot find symbol
symbol : class ContentResolver
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private ContentResolver mResolver;
^
RemoteUpdater.java:97: cannot find symbol
symbol : class ContentResolver
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
public RemoteUpdater(String authority, ContentResolver resolver) {
^
RemoteUpdater.java:192: cannot find symbol
symbol : class JSONObject
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private boolean updateNewsFeed(JSONObject serverData) {
^
RemoteUpdater.java:207: cannot find symbol
symbol : class JSONObject
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private boolean updateTable(JSONObject serverData, Uri authority,
^
RemoteUpdater.java:207: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private boolean updateTable(JSONObject serverData, Uri authority,
^
RemoteUpdater.java:208: cannot find symbol
symbol : class JSONException
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
String table, String date) throws JSONException {
^
RemoteUpdater.java:234: cannot find symbol
symbol : class JSONObject
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private boolean updateMenu(JSONObject serverData) {
^
RemoteUpdater.java:308: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private boolean commitUpdates(Uri authority, String table, String date) {
^
RemoteUpdater.java:365: cannot find symbol
symbol : class JSONArray
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
private void parseRecords(JSONArray records, boolean delete)
^
RemoteUpdater.java:366: cannot find symbol
symbol : class JSONException
location: class com.yellowbrickcode.restaurant.c2dm.RemoteUpdater
throws JSONException {
^
PushService.java:612: cannot find symbol
symbol : class BroadcastReceiver
location: class com.yellowbrickcode.restaurant.c2dm.PushService
public static class Receiver extends BroadcastReceiver {
^
PushService.java:629: cannot find symbol
symbol : class Context
location: class com.yellowbrickcode.restaurant.c2dm.PushService.Receiver
public void onReceive(Context context, Intent intent) {
^
PushService.java:629: cannot find symbol
symbol : class Intent
location: class com.yellowbrickcode.restaurant.c2dm.PushService.Receiver
public void onReceive(Context context, Intent intent) {
^
SyncPreferences.java:10: package android.os does not exist
import android.os.Bundle;
^
SyncPreferences.java:11: package android.preference does not exist
import android.preference.PreferenceActivity;
^
SyncPreferences.java:23: cannot find symbol
symbol: class PreferenceActivity
public class SyncPreferences extends PreferenceActivity {
^
SyncPreferences.java:27: cannot find symbol
symbol : class Bundle
location: class com.yellowbrickcode.restaurant.c2dm.SyncPreferences
protected void onCreate(Bundle savedInstanceState) {
^
Provider.java:5: package android.content does not exist
import android.content.ContentProvider;
^
Provider.java:6: package android.content does not exist
import android.content.ContentValues;
^
Provider.java:7: package android.content does not exist
import android.content.UriMatcher;
^
Provider.java:8: package android.database does not exist
import android.database.Cursor;
^
Provider.java:9: package android.database.sqlite does not exist
import android.database.sqlite.SQLiteDatabase;
^
Provider.java:10: package android.graphics.drawable does not exist
import android.graphics.drawable.Drawable;
^
Provider.java:11: package android.net does not exist
import android.net.Uri;
^
Provider.java:12: package android.util does not exist
import android.util.Log;
^
Provider.java:41: cannot find symbol
symbol: class ContentProvider
public class Provider extends ContentProvider {
^
Provider.java:51: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.database.Provider
public static final Uri CONTENT_URI =
^
Provider.java:57: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.database.Provider
public static final Uri MENU_URI = Uri.withAppendedPath(CONTENT_URI, UpdateType.menu.toString());
^
Provider.java:62: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.database.Provider
public static final Uri NEWS_FEED_URI = Uri.withAppendedPath(CONTENT_URI, Table.NEWS_FEED.name);
^
Provider.java:65: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.database.Provider
public static final Uri UPDATES_URI = Uri.withAppendedPath(CONTENT_URI, Table.UPDATE_LOG.name);
^
Provider.java:70: cannot find symbol
symbol : class Uri
location: class com.yellowbrickcode.restaurant.database.Provider
public static final Uri IMAGE_URI = Uri.withAppendedPath(CONTENT_URI, Table.IMAGE.name);
^
Provider.java:80: cannot find symbol
symbol : class UriMatcher
location: class com.yellowbrickcode.restaurant.database.Provider
private static final UriMatcher URI_MATCHER;
^
DatabaseHelper.java:3: package android.content does not exist
import android.content.ContentValues;
^
DatabaseHelper.java:5: package android.database.sqlite does not exist
import android.database.sqlite.SQLiteDatabase;
^
DatabaseHelper.java:6: package android.database.sqlite does not exist
import android.database.sqlite.SQLiteOpenHelper;
^
DatabaseHelper.java:7: package android.graphics does not exist
import android.graphics.Bitmap;
^
DatabaseHelper.java:8: package android.util does not exist
import android.util.Log;
^
DatabaseHelper.java:21: cannot find symbol
symbol: class SQLiteOpenHelper
public class DatabaseHelper extends SQLiteOpenHelper {
^
Standard Doclet version 1.6.0_23
Building tree for all the packages and classes...
java.lang.NullPointerException
at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:85)
at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:47)
at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:486)
at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:405)
at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:443)
at com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:180)
at com.sun.tools.doclets.internal.toolkit.util.ClassTree.buildTree(ClassTree.java:132)
at com.sun.tools.doclets.internal.toolkit.util.ClassTree.<init>(ClassTree.java:91)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:123)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
at com.sun.tools.doclets.standard.Standard.start(Standard.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:291)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:165)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:374)
at com.sun.tools.javadoc.Start.begin(Start.java:162)
at com.sun.tools.javadoc.Main.execute(Main.java:59)
at com.sun.tools.javadoc.Main.main(Main.java:49)
100 warnings
Vấn đề chính là lỗi ở dưới cùng. - 100 cảnh báo chỉ liên quan đến việc liên kết đến tài liệu thư viện chính của Android, đây là vấn đề riêng biệt mà không không gây ra lỗi mà không tham chiếu đến android.support. Trong thực tế, không có cảnh báo nào nói như "gói android.support không tồn tại". Điều này khiến tôi tin rằng javadoc đang tìm thư viện tương thích, nhưng cái gì đó liên quan đến cái bình hoặc cách tôi tham khảo nó đang gây ra lỗi khi nói đến thế hệ javadoc cuối cùng.
Bất kỳ ý tưởng nào về những gì có thể gây ra lỗi được đánh giá cao.
Thế hệ javadoc ở trên chỉ tạo ra cho một lớp, StartupActivity. Mọi thứ đều được bỏ chọn ngoại trừ lớp đó, mặc dù nó vẫn cố gắng xây dựng các tham chiếu đến các lớp khác một cách đệ quy. –