Я пытаюсь заставить Scandit работать в Android Studio - у меня есть работа с eclipse, но когда я пытаюсь это сделать в студии Android, я получаю UnsatisfiedLinkError
.Scandit не работает в Android Studio (работает только в Eclipse)
Версия, которую я использую, - это сообщество Android Android scandit SDK 3.5.2. С андроид-студией 0.3.7 и андроидом 4.4 kitkat.
Я пробовал его в андроид-студии (последняя версия), следуя тем же шагам, что и для моего теста eclipse, но мое приложение вылетает. LogCat показывает:
java.lang.UnsatisfiedLinkError: Couldn't load scanditsdk-android-3.5.2 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.zipier.qr_scanner_scandit-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.zipier.qr_scanner_scandit-1, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at com.mirasense.scanditsdk.ScanditSDKBarcodePicker.initializeRecognitionEngine(ScanditSDKBarcodePicker.java:1298)
at com.mirasense.scanditsdk.ScanditSDKBarcodePicker.<init>(ScanditSDKBarcodePicker.java:330)
at com.mirasense.scanditsdk.ScanditSDKAutoAdjustingBarcodePicker.<init>(ScanditSDKAutoAdjustingBarcodePicker.java:59)
at com.zipier.qr_scanner_scandit.MainActivity.initializeAndStartBarcodeScanning(MainActivity.java:41)
at com.zipier.qr_scanner_scandit.MainActivity.onCreate(MainActivity.java:21)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Это мой исходный код:
public class MainActivity extends Activity implements ScanditSDKListener {
private ScanditSDK mBarcodePicker;
public static final String sScanditSdkAppKey = "pQqIxjG4EeOA8nxhinmFTJUHoJZP168Vn1rCM65paHw";
static {
System.loadLibrary("libscanditsdk-android-3.5.2");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initializeAndStartBarcodeScanning();
}
@Override
protected void onPause() {
mBarcodePicker.stopScanning();
super.onPause();
}
@Override
protected void onResume() {
mBarcodePicker.startScanning();
super.onResume();
}
public void initializeAndStartBarcodeScanning() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
ScanditSDKAutoAdjustingBarcodePicker picker = new ScanditSDKAutoAdjustingBarcodePicker(this, sScanditSdkAppKey, ScanditSDKAutoAdjustingBarcodePicker.CAMERA_FACING_FRONT);
setContentView(picker);
mBarcodePicker = picker;
mBarcodePicker.getOverlayView().addListener(this);
}
public void didScanBarcode(String barcode, String symbology) {
String cleanedBarcode = "";
for (int i = 0; i < barcode.length(); i++) {
if (barcode.charAt(i) > 30) {
cleanedBarcode += barcode.charAt(i);
}
}
if (symbology.equals("QR")) {
Toast.makeText(this, cleanedBarcode, Toast.LENGTH_LONG).show();
}
}
@Override
public void didCancel() {
mBarcodePicker.stopScanning();
finish();
}
@Override
public void onBackPressed() {
mBarcodePicker.stopScanning();
finish();
}
@Override
public void didManualSearch(String arg0) {
// TODO Auto-generated method stub
}
}
Родные библиотеки еще не поддерживаются в Android Studio. См. Http://stackoverflow.com/questions/16667903/android-studio-gradle-and-ndk. –
Неправда. Я получил это от ответа Итана. – MinceMan