我来自: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>