2011-11-16 15 views
19

के साथ विफल रहता है, मैं अपने एंड्रॉइड प्रोजेक्ट के लिए एक्लिप्स में जावाडोक टिप्पणियां उत्पन्न करने की कोशिश कर रहा हूं, लेकिन मुझे एक नलपोइंटर अपवाद प्राप्त होता है। समस्या तब होती है जब मैं Android Compatibility Library (android.support) आयात करने वाले वर्गों के लिए javadocs जेनरेट करने का प्रयास करता हूं, जिसे मैंने बाहरी जार के रूप में संलग्न किया है। मैं एंड्रॉइड 2.2 और कई लाइब्रेरी प्रोजेक्ट्स का भी संदर्भ देता हूं, लेकिन वे इस त्रुटि को स्वयं नहीं करते हैं।एक्लिप्स में एंड्रॉइड प्रोजेक्ट के लिए जावाडोक 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 

मुख्य समस्या नीचे की त्रुटि है। - 100 चेतावनियों में केवल मुख्य एंड्रॉइड लाइब्रेरी प्रलेखन से जुड़ना शामिल है, जो एक अलग मुद्दा है जो को Android.support के संदर्भ में त्रुटि का कारण बनता है। असल में, चेतावनियों में से कोई भी "पैकेज android.support मौजूद नहीं है" जैसा कुछ भी कहता है। इससे मुझे विश्वास होता है कि जावाडोक संगतता लाइब्रेरी ढूंढ रहा है, लेकिन जार या जिस तरह से मैं इसका संदर्भ देता हूं, उसमें कुछ जरूरी है जब यह अंतिम जावाडोक पीढ़ी की बात आती है।

त्रुटि के कारण होने वाले किसी भी विचार की सराहना की जाती है।

उत्तर

9

मुझे एक ही त्रुटि थी। विज़ार्ड में प्रोजेक्ट के विभिन्न हिस्सों का चयन करके त्रुटि कभी-कभी ट्रिगर होती है और कभी-कभी नहीं।

वैसे भी, उस त्रुटि से पहले बहुत सारे "पैकेज एंड्रॉइड। * मौजूद नहीं हैं" चेतावनियां, इसलिए मैंने इनसे पहले छुटकारा पाने का फैसला किया। Here's the workaround जो मेरे लिए काम किया।

अब, इन चेतावनी संदेशों के साथ, NullPointerException भी गायब हो गया! मैं संदर्भित लाइब्रेरी परियोजनाओं, तृतीय पक्ष लाइब्रेरी जार और एंड्रॉइड फ्रेमवर्क कक्षाओं के लिंक सहित पूरी परियोजना के लिए जावाडोक उत्पन्न करने में सक्षम था।

1

मुझे एक ही समस्या थी और अगर मैंने src को छोड़कर सब कुछ अनचेक किया, तो त्रुटि दूर हो गई।

+0

ऊपर जावाडोक पीढ़ी केवल एक वर्ग, स्टार्टअपएक्टिविटी के लिए उत्पन्न हो रही है। उस वर्ग को छोड़कर सबकुछ अनचेक किया गया है, हालांकि यह अभी भी अन्य वर्गों के संदर्भों को संदर्भित करने का प्रयास करता है। –

0

मेरे पास जावा फाइलों और पुस्तकालयों के एक पूरी तरह से अलग सेट के साथ एक ही कॉलस्टैक था। सभी बेस क्लास, बेस इंटरफेस और अन्य कक्षाओं को शामिल करने के लिए क्लासपाथ पूरा करने के बाद त्रुटि समाप्त हो गई, जहां जावाडोक से संदर्भित किया गया था। तो सभी को "प्रतीक नहीं मिल सका" चेतावनी को ठीक करने के लिए कॉलस्टैक को भी ठीक किया गया।

संबंधित मुद्दे