Could you post the exception stack trace? Thank you, Dmitri
On Saturday, January 2, 2010, Flo <[email protected]> wrote: > Hey there! > > I'm currently working on a component that's retrieving contact > information and creating an RDF model (FOAF tbe) from the data > provided. I started off with the HelloAndroid example and tried some > code in there. Everything worked out fine, so I wanted to put > everything in a seperate class which can be accessed via an interface. > > However, now I'm getting a NullPointer Exception when I want to call a > managedQuery(). > So I tried to create a ContentResolver in order to perform a query(). > But as soon as I call the getContentResolver() I'm getting a > NullPointer Exception as well. > > I think this could be a problem concerning the AndroidManifest.xml or > lack of knowledge about how to handle Activities and the likes? I've > been struggling with that for quite some hours now and think that I > won't solve this on my own, so I'd like to get your opinions and > ideas! > > However, here's my code: > -------------------------------------------------------------------------- > package com.example.helloandroid; > > import it.polimi.elet.contextaddict.microjena.rdf.model.Model; > import it.polimi.elet.contextaddict.microjena.rdf.model.ModelFactory; > import it.polimi.elet.contextaddict.microjena.rdf.model.Resource; > import it.polimi.elet.contextaddict.microjena.vocabulary.RDF; > import android.app.Activity; > import android.database.Cursor; > import android.net.Uri; > import android.os.Bundle; > import android.provider.ContactsContract; > > public class CPAddressbook extends Activity implements > IBasicContextProvider { > > Model contextModel; > > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > contextModel = ModelFactory.createDefaultModel(); > } > > @Override > public void detectContext(Model model) { > > Uri contactsURI = ContactsContract.Data.CONTENT_URI; > > String[] projection = new String[] { > ContactsContract.Data._ID, > ContactsContract.Data.CONTACT_ID, > ContactsContract.Data.MIMETYPE, > ContactsContract.Data.DATA1, > ContactsContract.Data.DATA2, > ContactsContract.Data.DATA3, > ContactsContract.Data.DATA4, > ContactsContract.Data.DATA5, > ContactsContract.Data.DATA_VERSION > }; > String where = ContactsContract.Data.MIMETYPE + " = ? > OR " + > ContactsContract.Data.MIMETYPE + " = ? > OR " + > ContactsContract.Data.MIMETYPE + " = ? > OR " + > ContactsContract.Data.MIMETYPE + " = ?"; > > String[] whereArgs = new String[] { > > ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, > > ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, > > ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE, > > ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE > }; > > Cursor contactsTable = managedQuery(contactsURI, projection, > where, whereArgs, null); > > writeToContextModel(contactsTable); > } > ... > -------------------------------------------------------------------------- > > > This is the class that calls the detectContext(): > -------------------------------------------------------------------------- > package com.example.helloandroid; > > import it.polimi.elet.contextaddict.microjena.rdf.model.Model; > import it.polimi.elet.contextaddict.microjena.rdf.model.ModelFactory; > import android.app.Activity; > import android.content.Intent; > import android.os.Bundle; > import android.provider.ContactsContract; > import android.widget.TextView; > > public class HelloAndroid extends Activity { > /** Called when the activity is first created. */ > @Override > public void onCreate(Bundle savedInstanceState) { > > super.onCreate(savedInstanceState); > TextView tv = new TextView(this); > tv.setText("Hello Android!"); > > IBasicContextProvider cpAddressbook = new CPAddressbook(); > cpAddressbook.detectContext(ModelFactory.createDefaultModel()); > Model model = cpAddressbook.getContextModel(); > > setContentView(tv); > > } > } > -------------------------------------------------------------------------- > This is also where I had my query before. It was exactely the same > code! > > and finally my AndroidManifest.xml: > -------------------------------------------------------------------------- > <?xml version="1.0" encoding="utf-8"?> > <manifest xmlns:android="http://schemas.android.com/apk/res/android" > package="com.example.helloandroid" > android:versionCode="1" > android:versionName="1.0"> > <application android:icon="@drawable/icon" android:label="@string/ > app_name"> > <activity android:name=".HelloAndroid" > android:label="@string/app_name"> > <intent-filter> > <action android:name="android.intent.action.MAIN" /> > <category > android:name="android.intent.category.LAUNCHER" /> > </intent-filter> > </activity> > > > > <activity android:name=".CPAddressbook" android:label="@string/ > app_name" android:permission="android.permission.READ_CONTACTS"></ > activity> > </application> > <uses-sdk android:minSdkVersion="5" /> > > <uses-permission android:name="android.permission.READ_CONTACTS"></ > uses-permission> > <uses-library android:name="it.polimi.elet.contextaddict.microjena"></ > uses-library> > </manifest> > -------------------------------------------------------------------------- > > I tried it with and without the additional permission within > the .CPAddressbook and it didn't make any difference. > > Is it about something in the AndroidManifest.xml or do I handle > Activities incorrectly? Or both? > > Any help would be appreciated Smile > > Thanks for your time! > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

