0
嘗試在不使用支持庫的情況下編譯renderscript。 我正在使用android studio與android sdk構建工具23.0.1(我也有20和23.0.0)。試圖編譯它爲三星galaxy s5 plus。 (5.0.2的Android API 21)android.renderscript.RSRuntimeException:加載ScriptC腳本失敗。 (android sdk build tools 23.0.1)
的inverse.rs文件位於: /SRC /主/ RS/
以我mainactivity.java:
RenderScript rs = RenderScript.create(this.getApplicationContext());
Allocation allocIn;
allocIn = Allocation.createFromBitmap(rs, bitmap);
Allocation allocOut = Allocation.createTyped(rs, allocIn.getType());
ScriptC_inverse inverse = new ScriptC_inverse(rs); //crashes on this line
inverse.forEach_invert(allocIn,allocOut);
rs.finish();
allocOut.copyTo(bitmap);
allocOut.destroy();
allocIn.destroy();
rs.destroy();
inverse.rs:
#pragma version(1)
#pragma rs java_package_name(com.example.dries.myocrtest)
uchar4 __attribute__((kernel)) invert(uchar4 in) {
uchar4 out = in;
out.r = 255 - in.r;
out.g = 255 - in.g;
out.b = 255 - in.b;
return out;
}
的build.gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.example.dries.myocrtest"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
renderscriptTargetApi 23
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile project(':tesstwo')
compile project(':fileExplorer')
}
這是我的錯誤日誌:
12384-12384/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.dries.myocrtest, PID: 12384
android.renderscript.RSRuntimeException: Loading of ScriptC script failed.
at android.renderscript.ScriptC.<init>(ScriptC.java:82)
at com.example.dries.myocrtest.ScriptC_inverse.<init>(ScriptC_inverse.java:34)
at com.example.dries.myocrtest.MainActivity.ocr(MainActivity.java:126)
at com.example.dries.myocrtest.MainActivity.onOptionsItemSelected(MainActivity.java:86)
at android.app.Activity.onMenuItemSelected(Activity.java:3030)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:325)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:147)
at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
at android.support.v7.app.AppCompatDelegateImplV7.onMenuItemSelected(AppCompatDelegateImplV7.java:609)
at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
at android.support.v7.internal.view.menu.MenuPopupHelper.onItemClick(MenuPopupHelper.java:191)
at android.widget.AdapterView.performItemClick(AdapterView.java:334)
at android.widget.AbsListView.performItemClick(AbsListView.java:1531)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3667)
at android.widget.AbsListView$3.run(AbsListView.java:5585)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
這工作,但我不得不改變renderscriptTargetApi到21。再次感謝! – DeGoosseZ
Doh,我第一次看到你的帖子時沒有看到。你改變那個是正確的。如果您願意,現在可以更改targetSdkVersion。 –