Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

javax.* cannot be imported in my Android app?

I'm trying to import some javax.* classes in my android app, but I keep getting compiler errors inside Android Studio. I'm using Ubuntu Linux 13.04.

Here are my imports:

import android.os.Bundle; import android.app.Activity; import android.view.Menu; // Here are the imports I am having trouble with: import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.SourceDataLine; 

And when I try to run the app or even compile the activity java file, I get these errors:

Gradle: error: package javax.sound.sampled does not exist Gradle: error: package javax.sound.sampled does not exist Gradle: error: package javax.sound.sampled does not exist 

I just can't figure out this problem. Any help would be awesome!

like image 938
Tux Avatar asked May 28 '13 23:05

Tux


1 Answers

Be aware that when you run an Android app: you don't run/compile it on a standard JVM/JDK, you don't even execute java bytecode. Google choose the java language (or at least a subset of it) as the language to do Android development, but it's only the language.

At the end the compiled java code is not java bytecode, but this is dalvik bytecode. (there is no .class files, but .dex files)

So, when doing Android development: you cannot use the full JavaSE API: you are limited to the API supported by the dalvik VM (available here).

(Note that when you browse this API beware of the version in the top right corner of the page : Added in API level X. It informs you about the Android-API version supporting that class or method)

like image 85
ben75 Avatar answered Sep 27 '22 22:09

ben75