iDevicesInc / SweetBlue

BLE on Android, the easy way. THIS IS NOW DEPRECATED. Please visit website for info on new versions.
https://sweetblue.io
GNU General Public License v3.0
357 stars 57 forks source link

Unable to compile ( cannot find symbol ) #448

Open ka05 opened 6 years ago

ka05 commented 6 years ago

Followed getting started guide on Readme. Went to run and got these errors during the build. Cloned v2.52.17

/Users/someone/git/Project/app/src/main/lib/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:165: error: cannot find symbol
    public static interface DiscoveryListener extends GenericListener_Void<DiscoveryEvent> {
                                                      ^
  symbol:   class GenericListener_Void
  location: class BleManager
/Users/someone/git/Project/app/src/main/lib/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:165: error: cannot find symbol
    public static interface DiscoveryListener extends GenericListener_Void<DiscoveryEvent> {
                                                                           ^
  symbol:   class DiscoveryEvent
  location: class BleManager
/Users/someone/git/Project/app/src/main/lib/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:369: error: cannot find symbol
    public static interface UhOhListener extends GenericListener_Void<UhOhListener.UhOhEvent> {
                                                 ^
  symbol:   class GenericListener_Void
  location: class BleManager
/Users/someone/git/Project/app/src/main/lib/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:555: error: cannot find symbol
        public static class UhOhEvent extends Event {
                                              ^
  symbol:   class Event
  location: interface UhOhListener
/Users/someone/git/Project/app/src/main/lib/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:554: error: cannot find symbol
        @Immutable
         ^
  symbol:   class Immutable
  location: interface UhOhListener
5 errors

I think it must have something to do with the @Immutable annotation as that is a custom annotation definition.

ka05 commented 6 years ago

I just changed my project to import SweetBlue as a module and Im now getting even more errors:

screen shot 2018-07-16 at 5 22 45 pm

/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:165: error: cannot find symbol
    public static interface DiscoveryListener extends GenericListener_Void<DiscoveryEvent> {
                                                      ^
  symbol:   class GenericListener_Void
  location: class BleManager
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:165: error: cannot find symbol
    public static interface DiscoveryListener extends GenericListener_Void<DiscoveryEvent> {
                                                                           ^
  symbol:   class DiscoveryEvent
  location: class BleManager
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:369: error: cannot find symbol
    public static interface UhOhListener extends GenericListener_Void<UhOhListener.UhOhEvent> {
                                                 ^
  symbol:   class GenericListener_Void
  location: class BleManager
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:555: error: cannot find symbol
        public static class UhOhEvent extends Event {
                                              ^
  symbol:   class Event
  location: interface UhOhListener
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:554: error: cannot find symbol
        @Immutable
         ^
  symbol:   class Immutable
  location: interface UhOhListener
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:588: error: method does not override or implement a method from a supertype
            @Override
            ^
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:592: error: cannot find symbol
                                this.getClass(),
                                    ^
  symbol: method getClass()
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:3072: error: incompatible types: DiscoveryListener cannot be converted to GenericListener_Void
                postEvent(m_discoveryListener, event);
                          ^
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:3079: error: incompatible types: DiscoveryListener cannot be converted to GenericListener_Void
                postEvent(m_discoveryListener, event);
                          ^
/Users/someone/git/Project/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/BleManager.java:3099: error: method postEvents in class BleManager cannot be applied to given types;
            postEvents(m_discoveryListener, events);
            ^
  required: GenericListener_Void,List<T>
  found: DiscoveryListener,List<DiscoveryEvent>
  reason: cannot infer type-variable(s) T
    (argument mismatch; DiscoveryListener cannot be converted to GenericListener_Void)
  where T is a type-variable:
    T extends Event declared in method <T>postEvents(GenericListener_Void,List<T>)
/Users/scottterry/git/QuickBlue_Android/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/P_DeviceManager.java:487: error: incompatible types: DiscoveryListener cannot be converted to GenericListener_Void
                        m_mngr.postEvent(listener, event);
                                         ^
/Users/scottterry/git/QuickBlue_Android/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/P_DeviceManager.java:554: error: incompatible types: DiscoveryListener cannot be converted to GenericListener_Void
            device.getManager().postEvent(listener, event);
                                          ^
/Users/scottterry/git/QuickBlue_Android/sweetblue/library/src/main/java/com/idevicesinc/sweetblue/P_UhOhThrottler.java:81: error: incompatible types: UhOhListener cannot be converted to GenericListener_Void
            m_mngr.postEvent(m_uhOhListener, event);
                             ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
13 errors
ka05 commented 6 years ago

Note: I also tried just cloning this repo directly and trying to run the integration module and i get the exact same errors.

FYI in your project build.gradle file you need to swap jcenter() and google() so that google() comes first. Also i had to add google() as a dependency under allprojects.repositories. Gradle would not even sync for me until i did these things. This SO post led me to this conclusion: https://stackoverflow.com/questions/50786296/failed-to-resolve-common-open-file-gradle-build

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'commons-codec:commons-codec:1.8'
        //classpath 'org.apache.ant:ant-jsch:1.7.1', 'jsch:jsch:0.1.29'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

Its possible that I am using a newer version of Android Studio that you guys are. Perhaps that is why things are not working for me. Listed below is the version I am using:

Android Studio 3.1.3 Build #AI-173.4819257, built on June 4, 2018 JRE: 1.8.0_152-release-1024-b01 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.13.6