本机响应 - 无法启动活动ComponentInfo {com.mobile/com.mobile.MainActivity}:java.lang.IllegalArgumentException:unexpected url:http://

时间:2017-11-21 20:11:41

标签: android react-native

想知道是否有人可以指出我正确的方向。 - 我正在尝试“反应 - 本机运行 - 安卓”我的应用程序。 - “react-native init”创建的文件结构 - 当我尝试推送到USB连接设备时,可以正常使用模拟器。 - 构建成功,安装apk然后立即崩溃。

设备日志中的错误:

11-20 18:16:28.513 18430 18430 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mobile/com.mobile.MainActivity}: java.lang.IllegalArgumentException: unexpected url: http://
11-20 18:16:28.513 18430 18430 E AndroidRuntime: 
11-20 18:16:28.513 18430 18430 E AndroidRuntime: 
11-20 18:16:28.513 18430 18430 E AndroidRuntime: 192.168.2.74/status

我不确定ip来自哪里与服务器或手机不匹配。

Okhttp请求构建器抛出异常:

public Builder url(String url) {
      if (url == null) throw new NullPointerException("url == null");

      // Silently replace web socket URLs with HTTP URLs.
      if (url.regionMatches(true, 0, "ws:", 0, 3)) {
        url = "http:" + url.substring(3);
      } else if (url.regionMatches(true, 0, "wss:", 0, 4)) {
        url = "https:" + url.substring(4);
      }

      HttpUrl parsed = HttpUrl.parse(url);
      if (parsed == null) throw new IllegalArgumentException("unexpected url: " + url);
      return url(parsed);
    }

我的主要活动:

package com.mobile;

import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {

    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     */
    @Override
    protected String getMainComponentName() {
        return "mobile";
    }

}

MainApplication:

package com.mobile;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.microsoft.codepush.react.CodePush;
import com.transistorsoft.rnbackgroundgeolocation.RNBackgroundGeolocation;
import com.oblador.vectoricons.VectorIconsPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {

        @Override
        protected String getJSBundleFile() {
        return CodePush.getJSBundleFile();
        }

    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
            new CodePush(getResources().getString(R.string.reactNativeCodePush_androidDeploymentKey), getApplicationContext(), BuildConfig.DEBUG),
            new RNBackgroundGeolocation(),
            new VectorIconsPackage()
      );
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}

清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobile"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />

    <application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>    
</manifest>

有什么想法吗?

有什么想法?我加粗了我认为最好的线索。

更新: 我已经尝试评论我的所有外部库,包括codepush,只是为了关闭它...我仍然得到相同的结果。

更新: 还用init创建了一个全新的项目。我构建它并将其发送到设备就好了,没有崩溃。所以亚行和所有这些东西似乎都运转正常。

1 个答案:

答案 0 :(得分:0)

经过两天的挫折之后。

答案:不要将您的项目命名为“移动”。

亚...