首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Eclipse中的Javadoc for Android项目使用NullPointerException失败

Eclipse中的Javadoc for Android项目使用NullPointerException失败
EN

Stack Overflow用户
提问于 2011-11-17 03:22:50
回答 3查看 15.3K关注 0票数 19

我试图在Eclipse中为我的Android项目生成javadoc注释,但我总是得到一个NullPointerException。只有当我尝试为导入Android Compatibility Library (android.support)的类生成javadoc时才会出现问题,我将其作为外部jar附加。我还参考了Android2.2和几个库项目,但这些项目本身并不会导致这个错误。

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不存在”的内容。这使我相信javadoc正在寻找兼容性库,但是当涉及到最终的javadoc生成时,涉及到jar或我引用它的方式会导致错误。

任何关于可能导致错误的原因的想法都是值得的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-18 21:18:43

我也犯了同样的错误。通过在向导中选择项目的不同部分,错误有时会触发,有时不会。

不管怎么说,在那个错误之前,有很多"package android.*不存在“的警告,所以我决定先把它们去掉。为我工作的Here's the workaround

现在,随着这些警告消息的消失,NullPointerException也消失了!我能够为整个项目生成javadoc,包括指向引用的库项目、第三方库jars和Android框架类的链接。

票数 9
EN

Stack Overflow用户

发布于 2011-11-17 03:29:30

我遇到了类似的问题,如果我取消选中除src之外的所有内容,错误就会消失。

票数 1
EN

Stack Overflow用户

发布于 2013-05-03 00:58:41

我使用完全不同的一组java文件和库使用相同的callstack。在我完成类路径以包含所有基类、基接口和从javadoc引用的其他类之后,这个错误就消失了。因此,修复了所有“找不到符号”的警告也修复了调用堆栈。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8157433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档