制作一个Twitter Android应用。 尝试使OAuth正常工作。 尝试初始化使用者时,我得到了nullpointerexception。

这是我的主要活动以及asynctaskloader类:

public class MainActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks{

final String TAG = getClass().getName();

private OAuthConsumer consumer;
private OAuthProvider provider;
private String token;
private String secret;
private getCommonsHttpOAuthConsumer consumerLoader;

Activity context;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button signInButton = (Button) findViewById(R.id.signInButton);

    signInButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign_in();
        }
    });     
}


public void sign_in()
{
    try {

        Log.i(TAG, "test");

        this.consumer = (OAuthConsumer) getSupportLoaderManager().initLoader(0, null, this); //here's the error

        Log.i(TAG, "test2");
    } catch (Exception e) {
        Log.e(TAG, "Error creating consumer / provider",e);
    }       
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}


@Override
public android.support.v4.content.Loader onCreateLoader(int id, Bundle arg1) {
    consumerLoader = new getCommonsHttpOAuthConsumer(context);
    return consumerLoader;
}


@Override
public void onLoadFinished(android.support.v4.content.Loader arg0,
        Object arg1) {
    // TODO Auto-generated method stub

}


@Override
public void onLoaderReset(android.support.v4.content.Loader arg0) {
    // TODO Auto-generated method stub

}

}





class getCommonsHttpOAuthConsumer extends AsyncTaskLoader<OAuthConsumer>{

public getCommonsHttpOAuthConsumer(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}

@Override
public OAuthConsumer loadInBackground() {
    // TODO Auto-generated method stub

    return new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
}

}

这是我的日志:

04-16 13:03:54.976: I/com.example.twittertestnewapi.MainActivity(22476): test
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476): Error     creating consumer / provider
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476): java.lang.NullPointerException
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.support.v4.content.Loader.<init>(Loader.java:91)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.support.v4.content.AsyncTaskLoader.<init>(AsyncTaskLoader.java:92)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at com.example.twittertestnewapi.getCommonsHttpOAuthConsumer.<init>(MainActivity.java:115)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at com.example.twittertestnewapi.MainActivity.onCreateLoader(MainActivity.java:87)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.support.v4.app.LoaderManagerImpl.createLoader(LoaderManager.java:490)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.support.v4.app.LoaderManagerImpl.createAndInstallLoader(LoaderManager.java:499)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.support.v4.app.LoaderManagerImpl.initLoader(LoaderManager.java:553)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at com.example.twittertestnewapi.MainActivity.sign_in(MainActivity.java:68)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at com.example.twittertestnewapi.MainActivity$1.onClick(MainActivity.java:56)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.view.View.performClick(View.java:4204)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.view.View$PerformClick.run(View.java:17355)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.os.Handler.handleCallback(Handler.java:725)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.os.Looper.loop(Looper.java:137)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at android.app.ActivityThread.main(ActivityThread.java:5041)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at java.lang.reflect.Method.invokeNative(Native Method)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at java.lang.reflect.Method.invoke(Method.java:511)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-16 13:03:54.986: E/com.example.twittertestnewapi.MainActivity(22476):    at dalvik.system.NativeStart.main(Native Method)

===============>>#1 票数:0 已采纳

您不会初始化与Loader使用的context变量。 onCreate()方法中添加:

context = this;

  ask by Jello translate from so

未解决问题?本站智能推荐:

1回复

加载程序/ asynctaskloader上带有android的java.lang.ClassCastException

制作一个Twitter Android应用。 尝试使OAuth正常工作。 尝试初始化使用者时遇到了java.lang.ClassCastException。 这是我的主要活动以及asynctaskloader类: 这是我的日志:
2回复

AsyncTaskLoader无法启动

我在装载机上遇到了一些麻烦,但是我不明白我做错了什么。 这是初始化并启动Loader的片段 这是我写的一个简单的加载器: 请注意LOGS。 日志输出:D / LOADER_DEBUG_TAG:onCreateLoader 这就是所有日志输出,我不明白为什么Loade
2回复

自定义AsyncTaskLoader回调问题

我的AsyncTaskLoader遇到了一些问题,不确定它们是否相关,因为它们在尝试重新启动Loader时都会发生。 在我的应用程序中,我有3个自定义CursorAdapter实例,由3个由1个singleton LoaderManager管理的自定义AsyncTaskLoader实例支持。
2回复

有没有使用AsyncTask优于AsyncTaskLoader的情况?

我目前正在研究加载器以及它们如何克服应用程序生命周期中的屏幕方向等变化,到目前为止,从我读过的内容来看,AsyncTaskLoader与AsyncTask完成的工作甚至更好。 因此,不应该将AsyncTask视为过时或者是否为开发人员提供了一些隐藏的优势?
1回复

Android Loader:无法将数据加载到ListView

问题是,我没有得到任何错误,除了数据没有加载到自定义ListView的textViews中,我得到的只是一个空白输出。 在开始使用Loaders之前我没有遇到任何问题。 MSKFragment.java (片段类) ServiceAdapter.java (自定义适配器类)
2回复

活动(加载程序-下载)+ 3个片段(使用加载程序-计算)

我必须每隔N秒从服务器下载“原始”数据,然后将其传送到片段(位于ViewPager内)。 每个片段都必须对数据进行自己的计算,然后填充自己的RecyclerView。 我有一个想法如何实现这一目标: Activity's AsyncTaskLoader下载数据,将其存储,然后广播一
1回复

线程android疑惑

我正在研究人机对话开源系统JVoiceXML从Java到Android的可移植性。 该系统基于VoiceXML 2.0标准,该标准使用XML文档来创建人与机器之间的交互。 这个想法是为Android提供一种创建使用TTS和SpeechRecognizer android引擎通过语音与用户
1回复

android,asyntaskloader,simpleadapter

我对AsynctaskLoader非常困惑。 我使用Asynctaskloader从使用PHP的服务器加载JSON数据,但仍然收到错误。 这是我的代码: Logcat的结果: list_prod_layout.xml的此代码xml 请给我一些答案。 谢谢。
1回复

用于http请求的Android多个Loader

我使用Javascript并希望在Android Java中执行类似的操作。 在Android中我知道Loader并阅读所有这些内容。 http://developer.android.com/guide/components/loaders.html 现在我知道如何只加载1个l
2回复

Android中的网络服务调用

我正在android中构建应用程序,其中第一个活动会执行Rest api调用并在屏幕上显示结果。 要进行Web服务调用,我可以使用asynctask或loader或Handlers 。 服务不是一个长期运行的操作,它与活动生命周期息息相关,因此不是一个好的选择。 我可以使用排球和r