Android: SQLiteDatabase can not resolve symbol

1

I'm trying to make a database for a game using libgdx, but there's no way it works for me. An error appears as soon as you start with the code: you do not find anything related to SQLite. The start of the code is:

public class DBAndroid extends DBHighScore{
protected SQLiteOpenHelper db_connection;
protected SQLiteDatabase stmt;

Both SQLiteOpenHelper and SQLiteDatabase appear in red, with the following message:

  

Can not resolve symbol 'SQLite ...'

Neither I get the option to install any bookstore :

My build.gradle files are the following (there is a total of 3):

The Project: ProjectName

buildscript {


repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'


}

}

allprojects {     apply plugin: "eclipse"     apply plugin: "idea"

version = '1.0'
ext {
    appName = "CatchEmAll"
    gdxVersion = '1.9.8'
    roboVMVersion = '2.3.3'
    box2DLightsVersion = '1.4'
    ashleyVersion = '1.7.0'
    aiVersion = '1.8.0'
}

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}

}

project (": android") {     apply plugin: "android"

configurations { natives }

dependencies {
    compile project(":core")
    compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
    compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"

}

}

project (": core") {     apply plugin: "java"

dependencies {
    compile "com.badlogicgames.gdx:gdx:$gdxVersion"
    compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"

}

}

tasks.eclipse.doLast {     delete ".project" }

The module: android

android {
buildToolsVersion "27.0.3"
compileSdkVersion 27
sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
        jniLibs.srcDirs = ['libs']
    }

    instrumentTest.setRoot('tests')
}
packagingOptions {
    exclude 'META-INF/robovm/ios/robovm.xml'
}
defaultConfig {
    applicationId "borruey.catchemall"
    minSdkVersion 9
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}

// called every time gradle gets executed, takes the native dependencies of // the natives configuration, and extracts them to the proper libs / folders // so they get packed with the APK. task copyAndroidNatives () {     file ("libs / armeabi /"). mkdirs ();     file ("libs / armeabi-v7a /"). mkdirs ();     file ("libs / arm64-v8a /"). mkdirs ();     file ("libs / x86_64 /"). mkdirs ();     file ("libs / x86 /"). mkdirs ();

configurations.natives.files.each { jar ->
    def outputDir = null
    if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
    if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")        
    if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
    if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
    if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
    if(outputDir != null) {
        copy {
            from zipTree(jar)
            into outputDir
            include "*.so"
        }
    }
}

}

task run (type: Exec) {     def path     def localProperties = project.file ("../ local.properties")     if (localProperties.exists ()) {         Properties properties = new Properties ()         localProperties.withInputStream {instr - >             properties.load (instr)         }         def sdkDir = properties.getProperty ('sdk.dir')         if (sdkDir) {             path = sdkDir         } else {             path="$ System.env.ANDROID_HOME"         }     } else {         path="$ System.env.ANDROID_HOME"     }

def adb = path + "/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'borruey.catchemall.AndroidLauncher'

}

// sets up the Android Eclipse project, using the old Ant based build. eclipse {     // need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin     // ignores any nodes added in classpath.file.withXml     sourceSets {         main {             java.srcDirs "src", 'gen'         }     }

jdt {
    sourceCompatibility = 1.6
    targetCompatibility = 1.6
}

classpath {
    plusConfigurations += [ project.configurations.compile ]        
    containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'       
}

project {
    name = appName + "-android"
    natures 'com.android.ide.eclipse.adt.AndroidNature'
    buildCommands.clear();
    buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
    buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
    buildCommand "org.eclipse.jdt.core.javabuilder"
    buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
}

}

// sets up the Android Idea project, using the old Ant based build. idea {     module {         sourceDirs + = file ("src");         scopes = [COMPILE: [plus: [project.configurations.compile]]]

    iml {
        withXml {
            def node = it.asNode()
            def builder = NodeBuilder.newInstance();
            builder.current = node;
            builder.component(name: "FacetManager") {
                facet(type: "android", name: "Android") {
                    configuration {
                        option(name: "UPDATE_PROPERTY_FILES", value:"true")
                    }
                }
            }
        }
    }
}

}

The module: core

apply plugin: "java"

sourceCompatibility = 1.6 [compileJava, compileTestJava] .options .encoding = 'UTF-8'

sourceSets.main.java.srcDirs = ["src /"]

eclipse.project {     name = appName + "-core" }

The error simply appears, it does not give me the option to install imports or anything. What can be the problem?

    
asked by MarcusF 05.06.2018 в 18:48
source

2 answers

1

You have to add the following import to your class to recognize the classes:

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

Both classes are contained in the Android SDK.

When you mark classes in red, you can select and click on the sequence: Alt + Enter and you select the option Import class to add the required import .

Update:

The project's build.gradle file must have the line:

apply plugin: 'com.android.application'

otherwise it will not recognize the SDK classes.

    
answered by 05.06.2018 в 18:52
0

The solution to what you are saying is importing the libraries, press the ALT + Enter keys on the line, as shown in the following image: p>

Greetings.

    
answered by 05.06.2018 в 19:15