2014-07-24 7 views
4

방금 ​​Android Studio에 렌더 스크립트를 시작했습니다. .rs 파일을 만들면 ScriptC_DS 클래스와 .bc 파일이 생성되지 않습니다. 나는 그것이 .rs 파일이 저장되면 자동 생성되도록되어 있으므로 무엇이 잘못 될지 확신하지 못한다고 읽었습니다..rs 파일을 만든 후 ScriptC_ "name"이 생성되지 않습니다 (Android Studio with Gradle)

DS.rs

#pragma version(1) 
#pragma rs java_package_name(com.example.DSing) 

void root(){ 

} 

build.gradle

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 20 
buildToolsVersion "20.0.0" 

defaultConfig { 
    applicationId "com.example.DSing" 
    minSdkVersion 16 
    targetSdkVersion 20 
    versionCode 1 
    versionName "1.0" 
    renderscriptTargetApi 18 
    renderscriptSupportMode true 

} 
buildTypes { 
    release { 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

MainActivity 클래스는 현재 (옆으로 자동 기본값을 생성에서) 아무 상관이없는,하지만 난 개인 ScriptC_DS를 만들려고 할 때 내부에서 "ScriptC_DS 기호를 해결할 수 없습니다"라는 메시지가 나타납니다. MainActivity

package com.example.DSing 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.support.v8.renderscript.*; 


public class Main extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 
private ScriptC_DS test; 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
} 

질문 : 내가 잘못 뭐하는 거지?

+0

RenderScript 소스는 어디에 있습니까? –

+0

@LarrySchiefer 폴더는 app/src/main/java/com.example.DS /에 있습니다. 거기에 .rs 파일과 내 MainActivity 클래스가 있습니다. – David

답변

16

Android Studio의 기본 프로젝트 레이아웃이 Eclipse의 기본 프로젝트 레이아웃과 다르기 때문에 문제가 발생했습니다. app/src/main/java 레이아웃에서 볼 수 있습니다. 제대로 문서화되지 않은 부분은 RenderScript (와 AIDL)가 Java 소스에 던져지기보다는 소스 세트에서 자신 만의 디렉토리를 갖게된다는 것입니다. 코드를 app/src/main/rs으로 이동하면 Android Studio에서 올바르게 빌드하고 .bc 파일 자산을 생성합니다.

+0

꽤 늦었 습니다만, 자동으로 생성되는'app/src/main/rs'입니까? .rs 파일을 넣기 위해 main 아래에 "rs"라는 디렉토리를 만들어야했습니다. – David

+0

아니요, 'java'디렉토리처럼 자동 생성되지 않습니다. AIDL 정의 바인더 인터페이스의 경우 'aidl'과 동일합니다. –

2

래리의 대답은 바로, 당신이해야 할 모든

  1. renderscriptTargetApi 18 renderscriptSupportModeEnabled true

  2. 경로 /src/main/rs

에 대한 폴더를 만들려면 Gradle을 설정에서이 두 설정을 추가입니다 프로젝트를 다시 빌드하면 ScriptC_xxx를 사용할 수 있습니다.

+0

고마워! 너 내 엉덩이를 구 했어. – arcs

+0

. 천만에. 그 대답이 도움이 된다니 다행 – Chauyan