Spero Android no puede crear una instancia de SferoconnectionView
-
21-12-2019 - |
Pregunta
Estoy tratando de aprender SFHero Android SDK y seguir el Tutorial oficial . Primero agregué Robotlibrary.jar a mi proyecto con éxito, sin errores de compilación.A continuación, puse SferoconnectorView a mi archivo de diseño como este:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff888888" >
<orbotix.view.connection.SpheroConnectionView
android:id="@+id/sphero_connection_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFF" />
</LinearLayout>
Luego agregué el siguiente código a Mainactivity.Java
public class MainActivity extends Activity {
private SpheroConnectionView mSpheroConn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSpheroConn=(SpheroConnectionView)findViewById(R.id.sphero_connection_view);
}
}
Espero ver la visión habitual de la conexión de Spero, (es un código bastante simple) pero arroja una excepción como esta:
02-25 15: 15: 53.161: E / AndroidRuntime (1241): java.lang.runtimeexception: no se puede iniciar la actividad componentinfo {com.ecem.spherobank / com.ecem.spherobank.mainactivity}: Android.view.InflateException: Línea de archivo XML binaria # 7: Error infinando la clase ORBOTIX.View.Connection.spheroconnectorView
Aquí está el stacktrace completo:
02-25 15:15:53.161: E/AndroidRuntime(1241): FATAL EXCEPTION: main
02-25 15:15:53.161: E/AndroidRuntime(1241): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ecem.spheroblank/com.ecem.spheroblank.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class orbotix.view.connection.SpheroConnectionView
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.os.Looper.loop(Looper.java:137)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.ActivityThread.main(ActivityThread.java:4745)
02-25 15:15:53.161: E/AndroidRuntime(1241): at java.lang.reflect.Method.invokeNative(Native Method)
02-25 15:15:53.161: E/AndroidRuntime(1241): at java.lang.reflect.Method.invoke(Method.java:511)
02-25 15:15:53.161: E/AndroidRuntime(1241): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-25 15:15:53.161: E/AndroidRuntime(1241): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-25 15:15:53.161: E/AndroidRuntime(1241): at dalvik.system.NativeStart.main(Native Method)
02-25 15:15:53.161: E/AndroidRuntime(1241): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class orbotix.view.connection.SpheroConnectionView
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
02-25 15:15:53.161: E/AndroidRuntime(1241): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.Activity.setContentView(Activity.java:1867)
02-25 15:15:53.161: E/AndroidRuntime(1241): at com.ecem.spheroblank.MainActivity.onCreate(MainActivity.java:20)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.Activity.performCreate(Activity.java:5008)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
02-25 15:15:53.161: E/AndroidRuntime(1241): ... 11 more
02-25 15:15:53.161: E/AndroidRuntime(1241): Caused by: java.lang.reflect.InvocationTargetException
02-25 15:15:53.161: E/AndroidRuntime(1241): at java.lang.reflect.Constructor.constructNative(Native Method)
02-25 15:15:53.161: E/AndroidRuntime(1241): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
02-25 15:15:53.161: E/AndroidRuntime(1241): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
02-25 15:15:53.161: E/AndroidRuntime(1241): ... 22 more
02-25 15:15:53.161: E/AndroidRuntime(1241): Caused by: java.lang.ExceptionInInitializerError
02-25 15:15:53.161: E/AndroidRuntime(1241): at orbotix.view.connection.SpheroConnectionView.startDiscovery(SpheroConnectionView.java:236)
02-25 15:15:53.161: E/AndroidRuntime(1241): at orbotix.view.connection.SpheroConnectionView.<init>(SpheroConnectionView.java:215)
02-25 15:15:53.161: E/AndroidRuntime(1241): ... 25 more
02-25 15:15:53.161: E/AndroidRuntime(1241): Caused by: java.lang.NullPointerException
02-25 15:15:53.161: E/AndroidRuntime(1241): at orbotix.robot.base.RobotProvider.<init>(RobotProvider.java:161)
02-25 15:15:53.161: E/AndroidRuntime(1241): at orbotix.robot.base.RobotProvider.<clinit>(RobotProvider.java:78)
02-25 15:15:53.161: E/AndroidRuntime(1241): ... 27 more
Entonces, ¿cómo puedo arreglarlo?
Solución
Finalmente, descubrí la respuesta.Estoy escribiendo esto, por lo que puede ser útil para otros desarrolladores que interesan en Spero Android SDK.
Haga clic derecho en el proyecto> Seleccione Propiedades >> Sección abierta "Java Compiler". ¡Asegúrese de verificar "Habilitar configuración específica del proyecto" y configurar "Nivel de cumplimiento del compilador" a 1.6!