当前位置: 首页 > 知识库问答 >
问题:

静态编程语言Android模拟器java.lang.IllegalArgumentException:非法URL: https//10.0.2.2:3000

邢焱
2023-03-14

我一直在尝试让Android emulator使用本地成本高昂的MySQL数据库启动一个简单的登录/注册程序。然而,当我试图在中运行代码时,会出现以下错误,我不确定原因。

Blockquote 2021 11月25日15:29:40.840 13032-13032/com。实例accentus\u登录E/AndroidRuntime:致命异常:主进程:com。实例accentus\u登录,PID:13032 java。lang.RuntimeException:无法启动activity ComponentInfo{com.example.accentus\u login/com.example.accentus\u login.MainActivity}:java。lang.IllegalArgumentException:android上的非法URL:https//10.0.2.2:3000。应用程序。ActivityThread。在android上执行LaunchActivity(ActivityThread.java:3449)。应用程序。ActivityThread。android上的handleLaunchActivity(ActivityThread.java:3601)。应用程序。服务器事务。启动ActivityItem。在android上执行(LaunchActivityItem.java:85)。应用程序。服务器事务。TransactionExecutor。android上的executeCallbacks(TransactionExecutor.java:135)。应用程序。服务器事务。TransactionExecutor。在android上执行(TransactionExecutor.java:95)。应用程序。android上的ActivityThread$H.handleMessage(ActivityThread.java:2066)。操作系统。处理程序。android上的dispatchMessage(Handler.java:106)。操作系统。活套。android上的loop(Looper.java:223)。应用程序。ActivityThread。java上的main(ActivityThread.java:7656)。lang.reflect。方法在com上调用(本机方法)。Android内部的操作系统。RuntimeInit$MethodandArgscaler。在com上运行(RuntimeInit.java:592)。Android内部的操作系统。合子岩。主要(ZygoteInit.java:947)原因:java。lang.IllegalArgumentException:非法URL:https//10.0.2.2:3000 at Refught2。改装$Builder。com上的baseUrl(reformation.java:454)。实例accentus\u登录。改装。改装客户端。com上的getInstance(RefughtClient.kt:13)。实例accentus_登录。主要活动。在android上创建(MainActivity.kt:28)。应用程序。活动在android上执行创建(Activity.java:8000)。应用程序。活动在android上执行创建(Activity.java:7984)。应用程序。仪表。android上的callActivityOnCreate(Instrumentation.java:1309)。应用程序。ActivityThread。android上的performLaunchActivity(ActivityThread.java:3422)。应用程序。ActivityThread。handleLaunchActivity(ActivityThread.java:html" target="_blank">3601)

这是设置基本URL的代码行:

object RetrofitClient {
    private var ourInstance:Retrofit?=null
    val instance:Retrofit
        get() {
            if(ourInstance==null)
                ourInstance=Retrofit.Builder()
                    .baseUrl("https//10.0.2.2:3000") // 10.0.2.2:3000 is the localhost on emulator
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .addConverterFactory(ScalarsConverterFactory.create())
                    .build()
            return ourInstance!!
        }
}

这是连接到url的API启动的地方

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //Init API
        val retrofit = RetrofitClient.instance // < Initialization of connection
        myAPI = retrofit.create(INodeJS::class.java)


        login_button.setOnClickListener{
            login(edt_email.text.toString(),edt_password.text.toString())
        }

        register_button.setOnClickListener{
            register(edt_email.text.toString(),edt_password.text.toString())
        }
    }

我不完全确定为什么它认为本地主机是非法URL。

共有1个答案

沈飞翼
2023-03-14

我认为你错过了协议https后的冒号。

交换

https//10.0.2.2:3000

https://10.0.2.2:3000

应该做到这一点。

 类似资料:
  • 我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?

  • 我喜欢这种Swift语法;它对很多事情都很有帮助: 我很想在科特林做这件事。但是,我找不到合适的语法! 科特林有这样的事吗?

  • 如图所示,https://stackoverflow.com/a/16639438/8949356,在Java中,当声明的类是公共类时,可以重写其函数 但是我想知道如何用静态编程语言编写完全相同的代码,我已经尝试了很多,但没有找到任何关于这个主题的东西。我可以在Java中去做这件事,但我的其余代码是用静态编程语言编写的,而且我不能一直带着这种怀疑;静态编程语言对我来说是一个很好的工具,我想学习它。

  • 我有一个使用Kotlin 1.0版的Android项目。Android Studio中的0-beta-1038。 我可以在不同的部分使用Kotlin运行它,它在模拟器中编译并工作,但当我尝试使用ReadWriteProperty时,它会给出以下错误消息: 未解析的引用:ReadWriteProperty 类称为首选Utils.kt: build.grade(模块:app) build.grade(

  • 我正在尝试用Java编写下面用Kotlin编写的代码。我无法创建DefaultElementsAdapter,因为我无法获得正确的语法。 我无法获得正确的Java代码 Kotlin班是这样的 我正在尝试使用图书馆https://github.com/m7mdra/HtmlRecycler

  • 我有以下问题:-创建了几个模块来实现类,并用-我的Android应用程序正在使用检索这些类。但是由于某种原因,没有在