On 30.08.2011 22:11, Jonas Maebe wrote:

On 30 Aug 2011, at 21:59, Sven Barth wrote:

I/ActivityManager(   62): Start proc com.example.helloandroid for activity 
com.example.helloandroid/.HelloAndroid: pid=375 uid=10034 gids={1015}
W/dalvikvm(  375): VFY: new-instance on interface or abstract class 
Lorg/freepascal/android/TTestActivity;

It says that the VM is instantiating an abstract class. Does the TTestActivity.j file contain 
"abstract" in the ".class" line near the top? The compiler will automatically 
add this keyword if a class contains one or more (possibly inherited) abstract methods (it's 
required by the JVM).

Indeed it does. In the .j as well as the disassembled .dex file:

=== part of TTestActivity.j begin ===

.bytecode 49.0
.source androidfpc.pas
.class abstract public org/freepascal/android/TTestActivity
.super android/app/Activity

=== part of TTestActivity.j end ===

=== part of TTestActivity.dex begin ===

.class public abstract org/freepascal/android/TTestActivity
.super android/app/Activity
.source androidfpc.pas

=== part of TTestActivity.dex end ===

I've also found the class that defines the abstract methods. It's four classes above android.app.Activity in the inheritance tree (android.common.Context). I yet need to check whether all methods are overridden correctly by the subclasses (and crosscheck that with the documentation).

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to