It HAS to be a static class to be internal and publicly accessible. The problem is that it does not provide the right constructor.
It looks like the class is not an internal class but declared in XML as an internal class. On Wed, Apr 22, 2009 at 9:25 AM, Mark Murphy <[email protected]> wrote: > > Pierpa wrote: >> Hello, I am new to android programming...so please be patient.. >> >> I am trying to load a custom view (TracciaView) into an activity >> (Activitygps), where my custom view in defined as a subclass of an >> activty class. I created the following xml layout file for the >> activity containing the custom view: >> >> ---- >> <?xml version="1.0" encoding="utf-8"?> >> <view xmlns:android="http://schemas.android.com/apk/res/android" >> >> class="com.example.android.prova.Activitygps$TracciaView" >> android:id="@+id/TracciaV" >> android:layout_width="fill_parent" >> android:layout_height="fill_parent" >> /> >> ---- >> this is the subclass TracciaView: >> >> public static class TracciaView extends View { >> >> private ShapeDrawable mDrawable; >> >> public TracciaView(Context context) { >> super(context); >> >> int x = 10; >> int y = 10; >> int width = 300; >> int height = 200; >> >> mDrawable = new ShapeDrawable(new OvalShape()); >> mDrawable.getPaint().setColor(0xff74AC23); >> mDrawable.setBounds(x, y, x + width, y + height); >> >> >> } >> �...@override protected void onDraw(Canvas canvas) { >> >> mDrawable.draw(canvas); >> super.onDraw(canvas); >> } >> >> } >> >> >> What happens is I am keeping on getting runtime error (the app dies), >> looking in the LogCat I get: >> >> I/ActivityManager( 53): Starting activity: Intent { comp= >> {com1.example.android.prova/com1.example.android.prova.Activitygps} } >> D/AndroidRuntime( 164): Shutting down VM >> W/dalvikvm( 164): threadid=3: thread exiting with uncaught exception >> (group=0x4000fe68) >> E/AndroidRuntime( 164): Uncaught handler: thread main exiting due to >> uncaught exception >> E/AndroidRuntime( 164): java.lang.RuntimeException: Unable to start >> activity ComponentInfo{com1.example.android.prova/ >> com1.example.android.prova.Activitygps}: >> android.view.InflateException: Binary XML file line #2: Error >> inflating class com.example.android.prova.Activitygps$TracciaView >> E/AndroidRuntime( 164): at >> android.app.ActivityThread.performLaunchActivity(ActivityThread.java: >> 2141) >> E/AndroidRuntime( 164): at >> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: >> 2157) >> E/AndroidRuntime( 164): at android.app.ActivityThread.access$1800 >> (ActivityThread.java:112) >> E/AndroidRuntime( 164): at android.app.ActivityThread$H.handleMessage >> (ActivityThread.java:1581) >> E/AndroidRuntime( 164): at android.os.Handler.dispatchMessage >> (Handler.java:88) >> E/AndroidRuntime( 164): at android.os.Looper.loop(Looper.java:123) >> E/AndroidRuntime( 164): at android.app.ActivityThread.main >> (ActivityThread.java:3739) >> E/AndroidRuntime( 164): at java.lang.reflect.Method.invokeNative >> (Native Method) >> E/AndroidRuntime( 164): at java.lang.reflect.Method.invoke >> (Method.java:515) >> E/AndroidRuntime( 164): at com.android.internal.os.ZygoteInit >> $MethodAndArgsCaller.run(ZygoteInit.java:739) >> E/AndroidRuntime( 164): at com.android.internal.os.ZygoteInit.main >> (ZygoteInit.java:497) >> E/AndroidRuntime( 164): at dalvik.system.NativeStart.main(Native >> Method) >> E/AndroidRuntime( 164): Caused by: android.view.InflateException: >> Binary XML file line #2: Error inflating class >> com.example.android.prova.Activitygps$TracciaView >> E/AndroidRuntime( 164): at >> android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:575) >> E/AndroidRuntime( 164): at android.view.LayoutInflater.inflate >> (LayoutInflater.java:385) >> E/AndroidRuntime( 164): at android.view.LayoutInflater.inflate >> (LayoutInflater.java:320) >> E/AndroidRuntime( 164): at android.view.LayoutInflater.inflate >> (LayoutInflater.java:276) >> E/AndroidRuntime( 164): at >> com.android.internal.policy.impl.PhoneWindow.setContentView >> (PhoneWindow.java:231) >> E/AndroidRuntime( 164): at android.app.Activity.setContentView >> (Activity.java:1567) >> E/AndroidRuntime( 164): at >> com1.example.android.prova.Activitygps.onCreate(Activitygps.java:60) >> E/AndroidRuntime( 164): at >> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: >> 1122) >> E/AndroidRuntime( 164): at >> android.app.ActivityThread.performLaunchActivity(ActivityThread.java: >> 2104) >> E/AndroidRuntime( 164): ... 11 more >> E/AndroidRuntime( 164): Caused by: java.lang.ClassNotFoundException: >> com.example.android.prova.Activitygps$TracciaView in loader >> dalvik.system.pathclassloa...@4339c200 >> E/AndroidRuntime( 164): at dalvik.system.PathClassLoader.findClass >> (PathClassLoader.java:215) >> E/AndroidRuntime( 164): at java.lang.ClassLoader.loadClass >> (ClassLoader.java:453) >> E/AndroidRuntime( 164): at java.lang.ClassLoader.loadClass >> (ClassLoader.java:421) >> E/AndroidRuntime( 164): at android.view.LayoutInflater.createView >> (LayoutInflater.java:465) >> E/AndroidRuntime( 164): at >> android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:564) >> E/AndroidRuntime( 164): ... 19 more >> I/Process ( 53): Sending signal. PID: 164 SIG: 3 >> I/dalvikvm( 164): threadid=7: reacting to signal 3 >> I/dalvikvm( 164): Wrote stack trace to '/data/anr/traces.txt' >> I/ARMAssembler( 53): generated >> scanline__00000077:03515104_00000000_00000000 [ 27 ipp] (41 ins) at >> [0x26cfd8:0x26d07c] in 1686764 ns >> >> >> >> I lost almost two days trying to figure out what's wrong ... >> >> Any help/hint will be very much appreciated... > > Try not making it a static class and see if that helps. > > -- > Mark Murphy (a Commons Guy) > http://commonsware.com | http://twitter.com/commonsguy > > _The Busy Coder's Guide to Android Development_ Version 2.0 Available! > > > > -- Romain Guy Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" 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-beginners?hl=en -~----------~----~----~----~------~----~------~--~---

