Hi all,
  I'm having a strange issue where if I compile my class files with
Eclipse ADT, my app works, but if I compile it using javac, I get a
VerifyError. Here's what logcat says:

/ActivityManager(   53): Start proc com.timefire.timescope.android for
activity com.timefire.timescope.android/.ChronoscopeActivity: pid=464
uid=10017 gids={}
D/dalvikvm(  464): GC freed 749 objects / 58208 bytes in 51ms
D/dalvikvm(  464): GC freed 74 objects / 12304 bytes in 40ms
W/dalvikvm(  464): VFY: register2 v8-9 values 0,4
W/dalvikvm(  464): VFY: register2 v10-11 values 0,0
W/dalvikvm(  464): VFY:  rejecting opcode 0x6e at 0x002b
W/dalvikvm(  464): VFY:  rejected Lorg/timepedia/chronoscope/client/
data/DefaultMipMapStrategy;.calcMultiRange ([D)Lorg/timepedia/
chronoscope/client/data/Array2D;
W/dalvikvm(  464): Verifier rejected class Lorg/timepedia/chronoscope/
client/data/DefaultMipMapStrategy;
D/AndroidRuntime(  464): Shutting down VM
W/dalvikvm(  464): threadid=3: thread exiting with uncaught exception
(group=0x40010e28)
E/AndroidRuntime(  464): Uncaught handler: thread main exiting due to
uncaught exception
E/AndroidRuntime(  464): java.lang.VerifyError:
org.timepedia.chronoscope.client.data.DefaultMipMapStrategy
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.data.DatasetRequest.<init>(DatasetRequest.java:
81)
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.data.DatasetRequest
$Basic.<init>(DatasetRequest.java:22)
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.data.mock.MockDatasetFactory.getBasicDataset(MockDatasetFactory.java:
42)
E/AndroidRuntime(  464):        at
com.timefire.timescope.android.ChronoscopeActivity$SampleView
$1.onViewReady(ChronoscopeActivity.java:63)
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.canvas.View.allCanvasReady(View.java:
283)
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.canvas.View$1.onCanvasReady(View.java:
203)
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.canvas.Canvas.attach(Canvas.java:38)
E/AndroidRuntime(  464):        at
com.timefire.timescope.android.AndroidCanvas.attach(AndroidCanvas.java:
121)
E/AndroidRuntime(  464):        at
org.timepedia.chronoscope.client.canvas.View.onAttach(View.java:193)
E/AndroidRuntime(  464):        at
com.timefire.timescope.android.ChronoscopeActivity
$SampleView.onLayout(ChronoscopeActivity.java:79)
E/AndroidRuntime(  464):        at android.view.View.layout(View.java:5637)
E/AndroidRuntime(  464):        at
android.widget.FrameLayout.onLayout(FrameLayout.java:294)
E/AndroidRuntime(  464):        at android.view.View.layout(View.java:5637)
E/AndroidRuntime(  464):        at
android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
E/AndroidRuntime(  464):        at
android.widget.LinearLayout.layoutVertical(LinearLayout.java:999)
E/AndroidRuntime(  464):        at
android.widget.LinearLayout.onLayout(LinearLayout.java:920)
E/AndroidRuntime(  464):        at android.view.View.layout(View.java:5637)
E/AndroidRuntime(  464):        at
android.widget.FrameLayout.onLayout(FrameLayout.java:294)
E/AndroidRuntime(  464):        at android.view.View.layout(View.java:5637)
E/AndroidRuntime(  464):        at
android.view.ViewRoot.performTraversals(ViewRoot.java:771)
E/AndroidRuntime(  464):        at
android.view.ViewRoot.handleMessage(ViewRoot.java:1103)
E/AndroidRuntime(  464):        at
android.os.Handler.dispatchMessage(Handler.java:88)
E/AndroidRuntime(  464):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  464):        at
android.app.ActivityThread.main(ActivityThread.java:3742)
E/AndroidRuntime(  464):        at
java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  464):        at
java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(  464):        at com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:739)
E/AndroidRuntime(  464):        at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
E/AndroidRuntime(  464):        at dalvik.system.NativeStart.main(Native
Method)


Here's the offending method:
public Array2D calcMultiRange(double[] range) {
    ArgChecker.isGT(range.length, 0, "range.length");
    int numSamples = range.length;
    int numLevels = calcNumLevels(numSamples);
    double[][] multiRange = new double[numLevels][];
    double[] prevRange = null;

    for (int level = 0; level < numLevels; level++) {
      double[] currRange = new double[numSamples];
      if (level == 0) {
        for (int i = 0; i < numSamples; i++) {
          currRange[i] = range[i];
        }
      } else {
        for (int i = 0; i < numSamples; i++) {
          int prevIndex = i * 2;
          currRange[i] = calcRangeValue(prevRange[prevIndex],
              prevRange[prevIndex + 1]);
        }
      }

      multiRange[level] = currRange;
      prevRange = currRange;
      numSamples /= 2;
    }

    return new JavaArray2D(multiRange);
  }

Which is triggered by this initializer is another class:
  private MipMapStrategy defaultMipMapStrategy =
DefaultMipMapStrategy.MEAN;

Changing to constructor based initialization changes nothing. I also
stubbed out the calcMultiRange() method to return null, and still got
the same error. There are no missing classes as far as I can tell.

Anyway else hit this issue? The workaround (for me) it to have ant/
maven compile using Eclipse or Jikes.

-Ray


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to