'E/Error: Login failed for user 'adminname'. E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
I was trying to create the register function that will be linking from the Android Studio to the Microsoft SQL Server, but when I was trying to do so, I have faced the issue stated as above. May I know how do I solve this? Below are my errors and my codes. The error occured at connection = sqlCon.connectionClass()!!
E/Error: Login failed for user 'adminname'.
E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1 Process: com.example.myapplication, PID: 7890 java.lang.NullPointerException at com.example.myapplication.RegisterActivity.registerUser$lambda-3(RegisterActivity.kt:72) at com.example.myapplication.RegisterActivity.$r8$lambda$Xx7PbACDUcq1QigSI9z47xhw7to(Unknown Source:0) at com.example.myapplication.RegisterActivity$$ExternalSyntheticLambda3.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)
`class SQLCon {
lateinit var connection : Connection
lateinit var username : String
lateinit var pass : String
lateinit var ip : String
lateinit var port : String
lateinit var database : String
@SuppressLint("NewApi")
fun connectionClass(): Connection?
{
ip = "205.167.0.185"
database = "Testing"
username = "admin"
pass = "admin123"
port = "1433"
val policy = ThreadPolicy.Builder().permitAll().build()
StrictMode.setThreadPolicy(policy)
var con: Connection? = null
var conURL: String?
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver")
conURL = "jdbc:jtds:sqlserver://$ip:$port;databasename=$database;user=${username}name;password=$pass;"
con = DriverManager.getConnection(conURL)
} catch (e: Exception) {
Log.e("Error", e.message!!)
}
return con
}
}`
class RegisterActivity : AppCompatActivity (){
lateinit var regUsername : EditText
lateinit var regEmail : EditText
lateinit var regPassword : EditText
lateinit var cfmPassword : EditText
lateinit var regPhone : EditText
lateinit var btnRegAcc : Button
lateinit var btnBack : Button
lateinit var connection : Connection
lateinit var statement : Statement
//lateinit var sqlCon: SQLCon
private val myExecutor = Executors.newSingleThreadExecutor()
private val myHandler = Handler(Looper.getMainLooper())
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register)
regUsername = findViewById(R.id.regUsername)
regEmail = findViewById(R.id.regEmail)
regPassword = findViewById(R.id.regPassword)
cfmPassword = findViewById(R.id.cfmPassword)
regPhone = findViewById(R.id.regPhone)
btnRegAcc = findViewById(R.id.btnRegAcc)
btnBack = findViewById(R.id.btnBack)
Toast.makeText(this,"Register Page", Toast.LENGTH_SHORT).show()
btnRegAcc.setOnClickListener {
registerUser()
}
btnBack.setOnClickListener{
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
}
}
fun registerUser()
{
myExecutor.execute {
validateUsername()
validatePhone()
validateEmail()
validatePhone()
if (validateUsername() == true && validateEmail() == true && validatePhone() == true && validatePassword() == true){
//Toast.makeText(this, "Creating account...", Toast.LENGTH_LONG).show()
val sqlCon = SQLCon()
connection = sqlCon.connectionClass()!!
if(connection != null)
{
//var sql : String = "INSERT into Account (Username, Email, Password,Phone) VALUES into
var sql :String =
"INSERT INTO register (Username,Pass,Email,Phone) VALUES ('" + regUsername.text.toString() + "'" +
",'" + regPassword.text.toString() + "'" +
",'" + regEmail.text.toString() + "'" +
",'" + regPhone.text.toString() + "')"
statement = connection.createStatement();
statement.executeUpdate(sql)
}
else {
//Toast.makeText(this, "Failed to make connection", Toast.LENGTH_LONG).show()
}
myHandler.post {
Toast.makeText(this, "Creating account...", Toast.LENGTH_LONG).show()
}
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
