2016-10-25 2 views
0

Я относительно новичок в Android. Я пытаюсь реализовать веб-обертку для сайта Rails, созданного с помощью turbolinks. Я следую readme на turbolinks-android repo на github, но у меня возникла проблема с этой строкой. turbolinksView = (TurbolinksView) findViewById(R.id.turbolinks_view); Похоже, что Android не найден в манифесте turbolinks_view. Я напишу весь код ниже. Любая помощь приветствуется. :)TurbolinksView не найден на Android

MainActivity.java

import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 

 
import com.basecamp.turbolinks.TurbolinksSession; 
 
import com.basecamp.turbolinks.TurbolinksView; 
 

 

 
public class MainActivity extends AppCompatActivity { 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_main); 
 

 

 
     turbolinksView = (TurbolinksView) findViewById(R.id.turbolinks_view); 
 

 
     TurbolinksSession.getDefault(this) 
 
       .activity(this) 
 
       .adapter(this) 
 
       .view(turbolinksView) 
 
       .visit("https://basecamp.com"); 
 
    } 
 
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
 

 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
xmlns:tools="http://schemas.android.com/tools" 
 
android:layout_width="match_parent" 
 
android:layout_height="match_parent" 
 
android:orientation="vertical"> 
 

 
<com.basecamp.turbolinks.TurbolinksView 
 
    android:id="@+id/turbolinks_view" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent"/> 
 

 
</LinearLayout>

Android Manifest

<?xml version="1.0" encoding="utf-8"?> 
 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
 
    package="com.example.turbolinkswrapper"> 
 
    <uses-permission android:name="android.permission.INTERNET" /> 
 

 
    <application 
 
     android:allowBackup="true" 
 
     android:icon="@mipmap/ic_launcher" 
 
     android:label="@string/app_name" 
 
     android:supportsRtl="true" 
 
     android:theme="@style/AppTheme"> 
 
     <activity android:name=".MainActivity"> 
 
      <intent-filter> 
 
       <action android:name="android.intent.action.MAIN" /> 
 

 
       <category android:name="android.intent.category.LAUNCHER" /> 
 
      </intent-filter> 
 
     </activity> 
 
    </application> 
 

 
</manifest>

build.gradle

apply plugin: 'com.android.application' 
 

 
android { 
 
    compileSdkVersion 25 
 
    buildToolsVersion "25.0.0" 
 
    defaultConfig { 
 
     applicationId "com.example.turbolinkswrapper" 
 
     minSdkVersion 25 
 
     targetSdkVersion 25 
 
     versionCode 1 
 
     versionName "1.0" 
 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
 
    } 
 
    buildTypes { 
 
     release { 
 
      minifyEnabled false 
 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
 
     } 
 
    } 
 
    productFlavors { 
 
    } 
 
} 
 

 
dependencies { 
 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
 
    compile 'com.basecamp:turbolinks:1.0.4' 
 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
 
     exclude group: 'com.android.support', module: 'support-annotations' 
 
    }) 
 
    compile 'com.android.support:appcompat-v7:25.0.0' 
 
    testCompile 'junit:junit:4.12' 
 
}

Error:(20, 9) error: cannot find symbol variable turbolinksView

+0

вы можете предоставить свой AndroidManifest и build.gradle? –

+0

@JuanFelippo обновил вопрос с AndroidManifest и build.gradle. – JonSayer

ответ

1

Вам просто нужно объявить turbolinksView, прежде чем использовать его.

Изменить ваш

turbolinksView = (TurbolinksView) findViewById(R.id.turbolinks_view); 

в

TurbolinksView turbolinksView = (TurbolinksView) findViewById(R.id.turbolinks_view); 

или ниже даст вам лучший контроль во всем MainActivity

public class MainActivity extends AppCompatActivity { 

    private TurbolinksView turbolinksView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     turbolinksView = (TurbolinksView) findViewById(R.id.turbolinks_view); 

     TurbolinksSession.getDefault(this) 
       .activity(this) 
       .adapter(this) 
       .view(turbolinksView) 
       .visit("https://basecamp.com"); 
    } 
} 
+0

Кажется, исправил эту проблему. Спасибо Трей. – JonSayer

Смежные вопросы