I wasn't able to fully follow your description, but this bit caught me eye:

"Userselection" is the value chosen by the user from a list pre-populated by
> the Keys in the Manager class to begin with. So if the user was able to make
> the selection, the key was there at the start of the Activity, and in the
> manager where it originated from.


Have the keys changed between releases of the application? Is the selected
key persisted in any way?

Tom.


On 27 August 2010 21:40, TreKing <treking...@gmail.com> wrote:

> Thanks for the continued help.
>
> On Fri, Aug 27, 2010 at 2:22 PM, Dianne Hackborn <hack...@android.com>wrote:
>
>>  The first thing I would look for is any code writing data that could
>> cause problems if it was killed in the middle of executing.
>
>
> That makes sense, but that's also why I'm confused. The main issue I've
> had, for which I have nearly 30 reports now in each version of my app in the
> dev console, has nothing to do with data access. Unless I'm really missing
> something.
>
> I have a base class reference that should be set to the appropriate
> instance of a derived class type based on user selection.
> These derived type instances come from a manager class, of sorts, that
> holds the instances. There is one static instance of this manager class in
> the app since it's global, constant data. So it should be initialized, along
> with it's internal data it manages, at all times. None of this involves any
> data access.
>
> Some pseudocode if it helps:
>
> // In "Manager" class
> public Manager
> {
>  private Map<String, BaseRef> refs = null;
>
>  public Manager()
>  {
>   refs = new TreeMap<String, BaseRef>();
>
>   // Explicitly add derived instances of BaseRef
>   refs.put("Key", new DerivedInstance());
>
>   // add more ...
>  }
>
>  public BaseRef get(String key)
>  {
>   return refs.get(key);
>  }
> }
>
> //In Static access class
> public StaticClass
> {
>  private static Manager manager = new Manager();
>
>  public static Manager getManager() { return manager; }
> }
>
> // Then, finally, in the class where the crash occurs
> BaseRef baseRef = StaticClass.getManager().get(userSelection);
>
>
> "Userselection" is the value chosen by the user from a list pre-populated
> by the Keys in the Manager class to begin with.
> So if the user was able to make the selection, the key was there at the
> start of the Activity, and in the manager where it originated from.
>
> baseRef, which is obtained from that single manager's list (which is
> essentially hard-coded), is later used elsewhere and ends up being null.
>
> There is no file data access involved anywhere in this Activity besides
> using SharedPreferences for exactly one option.
>
> Also, now that I've typed this out, this goes against the idea that statics
> are the problem since I would have had the null pointer at the point where I
> try to access the Manager class. Instead, it appears to be valid but for
> some reason its internal data, which is set on construction, is not.
>
> It's worth noting that I've seen this problem to a lesser extent before I
> added this manager class stuff, but since adding it last week, the problem
> seems to have exploded with a fury. But again, not sure if that's a result
> of a larger user-base over two months since last major update.
>
> I think at some point I'll start polling my users to see how many of them
> continue to see the issue after updating. Since I've instructed them, in
> nice big letters, to try uninstalling first, I expect not to hear any more
> complaints for now, but I'd rather fix the problem than band-aid it like
> this.
>
>
> -------------------------------------------------------------------------------------------------
> TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
> transit tracking app for Android-powered devices
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com>
> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to