Connecting Android and Arduino

  • Replies:15
  • OpenNot stickiedAnswered

Apr 26, 2012 4:55:17 AM

Hello guys,

I'm new to android app development. By referring to source code developed by few people at Amarino website, I'm trying to develop my own app for controlling a LED using my Android phone.

There are 3 activities in my class. First activity just includes a button and on clicking it it goes to 2nd activity. In 2nd activity we are asked to enter bluetooth ID and on pressing the next button it has to connect with the bluetooth device. But the app crashes.
And in the 3rd activity the following code is showing error, which I'm not able to rectify it!

1private ArduinoReceiver arduinoReceiver = new ArduinoReceiver();


Please help.

Thanks in advance.

Apr 26, 2012 6:45:26 AM

Can you paste the logcat for when the app crashes? And what is the error are you getting on private ArduinoReceiver arduinoReceiver = new ArduinoReceiver();

Apr 26, 2012 7:40:38 AM

04-26 11:09:16.434: W/dalvikvm(471): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-26 11:09:16.444: E/AndroidRuntime(471): FATAL EXCEPTION: main
04-26 11:09:16.444: E/AndroidRuntime(471): java.lang.NoClassDefFoundError: at.abraxas.amarino.Amarino
04-26 11:09:16.444: E/AndroidRuntime(471): at com.sabarish.lightcontrol.secondID.onClick(secondID.java:34)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.view.View.performClick(View.java:2485)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.view.View$PerformClick.run(View.java:9080)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.os.Handler.handleCallback(Handler.java:587)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.os.Handler.dispatchMessage(Handler.java:92)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.os.Looper.loop(Looper.java:123)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-26 11:09:16.444: E/AndroidRuntime(471): at java.lang.reflect.Method.invokeNative(Native Method)
04-26 11:09:16.444: E/AndroidRuntime(471): at java.lang.reflect.Method.invoke(Method.java:507)
04-26 11:09:16.444: E/AndroidRuntime(471): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-26 11:09:16.444: E/AndroidRuntime(471): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-26 11:09:16.444: E/AndroidRuntime(471): at dalvik.system.NativeStart.main(Native Method)

Apr 26, 2012 6:44:24 PM

Sabarish
04-26 11:09:16.434: W/dalvikvm(471): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-26 11:09:16.444: E/AndroidRuntime(471): FATAL EXCEPTION: main
04-26 11:09:16.444: E/AndroidRuntime(471): java.lang.NoClassDefFoundError: at.abraxas.amarino.Amarino
04-26 11:09:16.444: E/AndroidRuntime(471): at com.sabarish.lightcontrol.secondID.onClick(secondID.java:34)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.view.View.performClick(View.java:2485)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.view.View$PerformClick.run(View.java:9080)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.os.Handler.handleCallback(Handler.java:587)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.os.Handler.dispatchMessage(Handler.java:92)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.os.Looper.loop(Looper.java:123)
04-26 11:09:16.444: E/AndroidRuntime(471): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-26 11:09:16.444: E/AndroidRuntime(471): at java.lang.reflect.Method.invokeNative(Native Method)
04-26 11:09:16.444: E/AndroidRuntime(471): at java.lang.reflect.Method.invoke(Method.java:507)
04-26 11:09:16.444: E/AndroidRuntime(471): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-26 11:09:16.444: E/AndroidRuntime(471): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-26 11:09:16.444: E/AndroidRuntime(471): at dalvik.system.NativeStart.main(Native Method)

This is an easy one, it usually means that you have not declared the activity your trying to open in your manifest.xml file. You need to add:
<activity android:name="Amarino"
android:label="@string/app_name" >
</activity>

To the mainfest.xml file of your project before the </application> tag.

Apr 26, 2012 6:49:33 PM

Sabarish
arduinoReceiver = new ArduinoReceiver();

I'm getting the error: ArduinoReceiver cannot be resolved to a type.

When it says it can't be resolved to a type, it probably because your not importing it; and therefore does not know what Arduino is. At the top of your code before the

public class activity extends Activity

You need to put:
import ArduinoPackageName;

Where ArduinoPackageName would = the full package name for whatever Arduino code your using.

Apr 27, 2012 5:03:18 AM

Jeremiah
Sabarish
arduinoReceiver = new ArduinoReceiver();

I'm getting the error: ArduinoReceiver cannot be resolved to a type.

When it says it can't be resolved to a type, it probably because your not importing it; and therefore does not know what Arduino is. At the top of your code before the

public class activity extends Activity

You need to put:
import ArduinoPackageName;

Where ArduinoPackageName would = the full package name for whatever Arduino code your using.

I've imported all the files. The code which i'm referring to isn't showing that error but my code is showing that error!

Apr 28, 2012 2:46:42 AM

Sabarish
i have already declared the activity in Android Manifest and when I call the activity, it force closes.

Ok, i see now what the problem is, this line is telling you:

04-26 11:09:16.444: E/AndroidRuntime(471): at com.sabarish.lightcontrol.secondID.onClick(secondID.java:34)

Take a look at line 34 in your secondID.java file, there is a problem in the onClick method.

Apr 28, 2012 1:07:00 PM

Jeremiah
Sabarish
i have already declared the activity in Android Manifest and when I call the activity, it force closes.

Ok, i see now what the problem is, this line is telling you:

04-26 11:09:16.444: E/AndroidRuntime(471): at com.sabarish.lightcontrol.secondID.onClick(secondID.java:34)

Take a look at line 34 in your secondID.java file, there is a problem in the onClick method.

can you help me figuring out the problem?
1package com.sabarish.lightcontrol;
2
3import android.app.Activity;
4import android.content.Intent;
5import android.os.Bundle;
6import android.view.View;
7import android.view.View.OnClickListener;
8import android.widget.Button;
9import android.widget.EditText;
10import at.abraxas.amarino.Amarino;
11
12public class secondID extends Activity implements OnClickListener{
13
14 Button proceed;
15 EditText bluID;
16 String deviceID;
17
18 @Override
19 protected void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 setContentView(R.layout.second);
22
23 proceed = (Button) findViewById(R.id.bluID);
24 bluID = (EditText) findViewById(R.id.BLUidTEXT);
25
26 proceed.setOnClickListener(this);
27 }
28
29 public void onClick(View v)
30 {
31 deviceID = bluID.getText().toString();
32 Amarino.connect(this, deviceID);
33 Intent i = new Intent("com.sabarish.lightcontrol.LIGHTMAIN");
34 startActivity(i);
35 }
36}

— modified on Apr 28, 2012 1:07:52 PM

Apr 28, 2012 9:40:10 PM

Is "com.sabarish.lightcontrol.LIGHTMAIN" part of the same app or is this another app?

Make sure your declaring this acitivy in your manifest...

<activity android:name=".LIGHTMAIN"></activity>

Make sure it's outside other activity and in application.

Apr 30, 2012 3:21:58 PM

Jeremiah
Is "com.sabarish.lightcontrol.LIGHTMAIN" part of the same app or is this another app?

Make sure your declaring this acitivy in your manifest...

<activity android:name=".LIGHTMAIN"></activity>

Make sure it's outside other activity and in application.


chk out my manifest. I can't find any error!

1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.sabarish.lightcontrol" android:versionCode="1"
4 android:versionName="1.0">
5
6 <uses-sdk android:minSdkVersion="8" />
7
8 <application android:icon="@drawable/ic_launcher"
9 android:label="@string/app_name" android:debuggable="true">
10 <activity android:name=".Main" android:label="@string/app_name">
11 <intent-filter>
12 <action android:name="android.intent.action.MAIN" />
13
14 <category android:name="android.intent.category.LAUNCHER" />
15 </intent-filter>
16 </activity>
17 <activity android:name=".secondID" android:label="@string/app_name">
18 <intent-filter>
19 <action android:name="com.sabarish.lightcontrol.SECONDID" />
20
21 <category android:name="android.intent.category.DEFAULT" />
22 </intent-filter>
23 </activity>
24 <activity android:name=".lightmain" android:label="@string/app_name">
25 <intent-filter>
26 <action android:name="com.sabarish.lightcontrol.LIGHTMAIN" />
27
28 <category android:name="android.intent.category.DEFAULT" />
29 </intent-filter>
30 </activity>
31
32 </application>
33
34</manifest>