从库中启动活动:NullPointerException

时间:2014-06-24 12:41:59

标签: java android

我来自:How to create jar for Android Library Project

这是一个公认的答案所以我认为它会像预期的那样工作。但是:

我有一个附有库B的项目A(属性 - > Android->库 - >添加)

库B被声明为库(属性 - > Android->库 - >库已被检查),我按照上面链接的原始线程中的Commonsware描述的步骤(意思是,我的类在我的库和src文件夹中的jar是空的,以确保我的库不会被修改为像开源的那样)

我已经在A的清单中声明了我的图书馆B的活动.B和A中没有活动也没有同名的资源。

我在A中使用它:

Intent i = new Intent(MainActivity.this.getApplicationContext(), com.dmdsante.mydmdpost.activity.MdpMainActivity.class);
i.putExtra("access_token", "test");
startActivity(i);

我收到以下错误:

06-24 14:25:49.826: E/AndroidRuntime(14778): FATAL EXCEPTION: main
06-24 14:25:49.826: E/AndroidRuntime(14778): Process: com.example.ids, PID: 14778
06-24 14:25:49.826: E/AndroidRuntime(14778): java.lang.NullPointerException
06-24 14:25:49.826: E/AndroidRuntime(14778): at com.dmdsante.mydmdpost.activity.MdpMainActivity$GetConfig.onPostExecute(MdpMainActivity.java:303)
06-24 14:25:49.826: E/AndroidRuntime(14778): at com.dmdsante.mydmdpost.activity.MdpMainActivity$GetConfig.onPostExecute(MdpMainActivity.java:1)
06-24 14:25:49.826: E/AndroidRuntime(14778): at android.os.AsyncTask.finish(AsyncTask.java:632)
06-24 14:25:49.826: E/AndroidRuntime(14778): at android.os.AsyncTask.access$600(AsyncTask.java:177)
06-24 14:25:49.826: E/AndroidRuntime(14778): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
06-24 14:25:49.826: E/AndroidRuntime(14778): at android.os.Handler.dispatchMessage(Handler.java:102)
06-24 14:25:49.826: E/AndroidRuntime(14778): at android.os.Looper.loop(Looper.java:136)
06-24 14:25:49.826: E/AndroidRuntime(14778): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-24 14:25:49.826: E/AndroidRuntime(14778): at java.lang.reflect.Method.invokeNative(Native Method)
06-24 14:25:49.826: E/AndroidRuntime(14778): at java.lang.reflect.Method.invoke(Method.java:515)
06-24 14:25:49.826: E/AndroidRuntime(14778): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-24 14:25:49.826: E/AndroidRuntime(14778): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-24 14:25:49.826: E/AndroidRuntime(14778): at dalvik.system.NativeStart.main(Native Method)

第303行引用来自库B的代码示例中的btn_devenez_evaluateur.setText("test");

setContentView(com.dmdsante.mydmdpost.R.layout.mdp_activity_main);
btn_devenez_evaluateur = (Button) findViewById(com.dmdsante.mydmdpost.R.id.btn_devenez_evaluateur);
btn_devenez_evaluateur.setText("test");

当我使用B作为库但以经典方式(意味着src文件夹中没有jar和类)时,一切正常。我究竟做错了什么 ?

编辑: 项目A的manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.ids"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:icon="@drawable/ic_launcher"
        android:allowBackup="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.ids.MainActivity"
            android:launchMode="singleTask" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.dmdsante.mydmdpost.activity.MdpMainActivity"
            android:windowSoftInputMode="stateHidden" >
        </activity>
        <activity
            android:name="com.dmdsante.mydmdpost.activity.MdpSearchActivity"
            android:windowSoftInputMode="stateHidden" >
        </activity>
        <activity
            android:name="com.dmdsante.mydmdpost.listview.MdpPlatformListViewActivity"
            android:windowSoftInputMode="stateHidden" >
        </activity>
        <activity
            android:name="com.dmdsante.mydmdpost.activity.MdpLookupActivity" >
        </activity>
        <activity
            android:name="com.dmdsante.mydmdpost.activity.MdpFullScreenViewActivity" >
        </activity>
    </application>

</manifest>

0 个答案:

没有答案