я нуб ie в kotlin но я сделал этот код для приложения: MainActivity:
enter code here
и maingame activity
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maingame)
val savebutton = findViewById<Button>(R.id.button6)
val amulti = findViewById<Button>(R.id.button5)
val aclick = findViewById<Button>(R.id.button4)
val nmulti = findViewById<Button>(R.id.button3)
val block = findViewById<Button>(R.id.button)
val money = findViewById<TextView>(R.id.textView2)
val normalmultiplier = 1.toFloat()
var moneyactual = 1.toFloat()
var nmulticost = 10.toFloat()
val path = getFilesDir()
var actualnm = 1.toFloat()
val letDirectory = File(path, "save")
letDirectory.mkdirs()
val amountofmoney = File(letDirectory, "amountofmoney")
val path2 = getFilesDir()
val letDirectory2 = File(path2, "save")
letDirectory.mkdirs()
val amountofnm = File(letDirectory, "amountofnm")
val PREFS_NAME = "MyPrefsFile"
val pathautoclick = getFilesDir()
val directoryautoclick = File(path, "save")
directoryautoclick.mkdirs()
val amountofautoclick = File(directoryautoclick, "amountofac" )
val pathaccost = getFilesDir()
val costofac = File(directoryautoclick, "costofac" )
val settings = getSharedPreferences(PREFS_NAME, 0)
var accost = 700.toInt()
if (settings.getBoolean("my_first_time", true)) {
//the app is being launched for first time, do something
moneyactual = 1.toFloat()
FileOutputStream(amountofmoney).bufferedWriter().use {
it.write(1.toString())
}
FileOutputStream(amountofautoclick).bufferedWriter().use {
it.write(0.toInt())
}
FileOutputStream(amountofnm).bufferedWriter().use {
it.write(1.toFloat().toString())
}
FileOutputStream(costofac).bufferedWriter().use {
it.write(700.toInt())
}
accost = 700.toInt()
var actualnm = 1.0.toFloat()
// record the fact that the app has been started at least once
settings.edit().putBoolean("my_first_time", false).commit()
}
accost = FileInputStream(costofac).bufferedReader().use {
it.read()
}
actualnm = FileInputStream(amountofnm).bufferedReader().use {
it.readText().toFloat()
}
nmulticost = 10 * actualnm
money.text = moneyactual.toString()
moneyactual = FileInputStream(amountofmoney).bufferedReader().use {
it.readText().toFloat()
}
block.setOnClickListener {
moneyactual = FileInputStream(amountofmoney).bufferedReader().use {
it.readText().toFloat()
}
moneyactual = moneyactual + (1 * actualnm)
nmulticost = 10 * actualnm
nmulti.text = "Click Multiplier" + nmulticost.roundToInt()
FileOutputStream(amountofmoney).bufferedWriter().use {
it.flush()
it.write(moneyactual.toString())
}
}
nmulti.setOnClickListener {
if (moneyactual < nmulticost) {
Toast.makeText(this, "you dont have enough money", Toast.LENGTH_SHORT).show()
}
else{
moneyactual = moneyactual - nmulticost
nmulticost = actualnm * 10
actualnm = actualnm + 1.05.toFloat()
FileOutputStream(amountofmoney).bufferedWriter().use {
it.write(moneyactual.toString())
}
FileOutputStream(amountofnm).bufferedWriter().use {
it.write(actualnm.toString())
}
}
}
aclick.setOnClickListener {
if (moneyactual < accost) {
Toast.makeText(this, "you dont have enough money", Toast.LENGTH_SHORT).show()
}
else{
accost = FileInputStream(costofac).bufferedReader().use {
it.readText().toInt()
}
moneyactual = moneyactual - accost
nmulticost = actualnm * 10
actualnm = actualnm + 1.05.toFloat()
FileOutputStream(amountofmoney).bufferedWriter().use {
it.write(moneyactual.toString())
}
accost = accost + 700
FileOutputStream(costofac).bufferedWriter().use {
it.write(accost.toString())
}
}
}
val mainHandler = Handler(Looper.getMainLooper())
mainHandler.post(object : Runnable {
override fun run() {
changetext()
mainHandler.postDelayed(this, 10)
}
})
mainHandler.post(object : Runnable {
override fun run() {
autoclick(3)
mainHandler.postDelayed(this, 1000)
}
})
}
public fun changetext(){
val path = getFilesDir()
val letDirectory = File(path, "save")
letDirectory.mkdirs()
val amountofmoney = File(letDirectory, "amountofmoney")
val money = findViewById<TextView>(R.id.textView2)
money.text = FileInputStream(amountofmoney).bufferedReader().use {
it.readText()
}
}
public fun autoclick(int: Int){
val path = getFilesDir()
val letDirectory = File(path, "save")
letDirectory.mkdirs()
val amountofmoney = File(letDirectory, "amountofmoney")
var actualmoney = FileInputStream(amountofmoney).bufferedReader().use {
it.readText()
}
actualmoney = actualmoney + Int
FileOutputStream(amountofmoney).bufferedWriter().use {
it.flush()
it.write(actualmoney.toString())
}
}
}
я пытался Запустите приложение на моем телефоне, и оно зависло, когда я нажал кнопку «Активировать активность» на главной активности, я попытался отладить его, и это то, что он сказал: '' 'E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.game, PID: 16773
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.game/com.example.game.maingame}: java.lang.NumberFormatException: For input string: "1kotlin.jvm.internal.IntCompanionObject@b8225a"
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.NumberFormatException: For input string: "1kotlin.jvm.internal.IntCompanionObject@b8225a"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at com.example.game.maingame.onCreate(maingame.kt:90)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
I / om. example.gam: ProcessProfilingInfo new_methods = 962 сохранено сохранено_диск_ = 1 resol_classes_delay = 8000