国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android-studio導(dǎo)入.so庫(kù)問題?

瀏覽:196日期:2024-08-30 14:45:46

問題描述

我的目錄結(jié)構(gòu)Android-studio導(dǎo)入.so庫(kù)問題?

一下是主activity

package com.iflytek.tts;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import com.iflytek.tts.TtsService.Tts;import com.iflytek.tts.R;public class TtsJniDemo extends Activity implements View.OnClickListener { //在lib目錄下有AisoundDemo.so 文件 private static final String TAG = 'AisoundDemo'; private TextView txtView; //準(zhǔn)備讀的文字 private String text = '??????????'; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// uiTextView textView = (TextView) findViewById(R.id.textView);EditText editText = (EditText) findViewById(R.id.editText);Button startButton = (Button) findViewById(R.id.startButton);Button stopButton = (Button) findViewById(R.id.stopButton);startButton.setOnClickListener(this);stopButton.setOnClickListener(this);if (!editText.getText().toString().equals('')){ text = editText.getText().toString();}textView.setText(text);// ttsTts.JniCreate('/sdcard/Resource.irf');Tts.JniSetParam(1282, -11000);//1282可能是 調(diào)整語(yǔ)速的id 后面的-11000 是它的值。 比如Tts.JniSetParam(1282, -15000); 改成這個(gè)就說話速度快了。//Tts.JniSetParam(1280, 4); 這個(gè)是別的參數(shù) 看看改4 這個(gè)數(shù)字看看 我也不知道是什么//Tts.JniSetParam(1297, 20); 這個(gè)是別的參數(shù) 看看改20 這個(gè)數(shù)字看看 我也不知道是什么//Tts.JniSetParam(1282, 20000); 這個(gè)是別的參數(shù) 看看改20000 這個(gè)數(shù)字看看 我也不知道是什么 } @Override public void onClick(View v) {switch (v.getId()){ case R.id.startButton:onClickStart();break; case R.id.stopButton:onClickStop();break;} } public void onClickStop(){//Tts.JniStop(); } public void onClickStart(){//JniSpeak參數(shù)是文字 給什么文字就讀什么文字。 此代碼只是維吾爾語(yǔ)言的離線合成。Tts.JniSpeak(text);//1。在這兒關(guān)閉語(yǔ)音助手的識(shí)別 stoplistening// stoplisteningdo { //2.這個(gè)的作用是 等到 語(yǔ)音合成結(jié)束時(shí)前 不要執(zhí)行任何事情}while (Tts.JniIsPlaying()==0);//3.語(yǔ)音合成結(jié)束后 在這兒開啟語(yǔ)音識(shí)別 starlistining .//starlistining//總結(jié):通過1,2,3步驟可以實(shí)習(xí) 對(duì)助手說 你好 它回答 我好 的時(shí)候 這個(gè)“我好”防止被語(yǔ)音識(shí)別再一次聽到自己的聲音。 第3步是 說完 “我好” 后自動(dòng)就開啟識(shí)別了。等待用戶再一次說話。 這和地方在用戶多輪交流時(shí)有用。 }}

以下是Tts.java

package com.iflytek.tts.TtsService;//import com.iflytek.tts.MessageDemo;import com.iflytek.tts.TtsJniDemo;public final class Tts{ static {System.loadLibrary('Aisound'); } public static String getString; /** * */ public synchronized static void startReadThread(TtsJniDemo ttsJniDemo){class TtsRunThread implements Runnable { @Override public void run() {JniSpeak(getString); }}Thread ttsRun = (new Thread(new TtsRunThread()));ttsRun.setPriority(Thread.MAX_PRIORITY);ttsRun.start(); } public static native int JniGetVersion(); public static native int JniCreate(String resFilename); public static native int JniDestory(); public static native int JniStop(); public static native int JniSpeak(String text); public static native int JniSetParam(int paramId,int value); public static native int JniGetParam(int paramId); public static native int JniIsPlaying(); public static native boolean JniIsCreated();}

以下是錯(cuò)誤信息Android-studio導(dǎo)入.so庫(kù)問題?

我在android-studio導(dǎo)入一個(gè).so庫(kù)的時(shí)候遇到了以上問題,我該怎么解決?網(wǎng)上有人說是NDK的bug,我改了NDK版本也是同樣問題,謝謝大家。

問題解答

回答1:

如果是你自己編譯的,不會(huì)有這個(gè)問題,如果有別人的庫(kù),你用nm -Do libyourso.so查看一下他的包結(jié)構(gòu),然后在你的src/main/java下建一個(gè)相同的包路徑,把class名也改成和對(duì)方一樣

另外,如果用別人的,-v7a -v8a x86 x86_64每個(gè)單獨(dú)測(cè)試,我以前也遇到過這個(gè)問題,非常不穩(wěn)定,有時(shí)能過有時(shí)不能過。把不需要的so及目錄刪除,逐個(gè)測(cè)試,留 下能過的那個(gè)so就行了

回答2:

你確定是導(dǎo)入so庫(kù)造成的問題么?如果是,你可以試試刪除-v7a -v8a x86 x86_64這些文件夾,然后試一下。或者在這些文件夾下放對(duì)應(yīng)格式的.so文件

回答3:

這樣我們也無法確切知道問題在哪,我建議,你可以先做個(gè)調(diào)用so的demo,so里面就寫一個(gè)簡(jiǎn)單的方法,對(duì)應(yīng)java里面一個(gè)方法,方法命名都檢查清楚,一一對(duì)應(yīng),把so文件先只放在armeabi文件夾下,然后再按照網(wǎng)上的介紹的一些例子試著把這一個(gè)方法調(diào)試成功,成功了然后再去試著調(diào)試你上面的代碼

回答4:

No JNI_OnLoad found in問題多半是java包名與生成so的C或C++代碼的函數(shù)名不一致導(dǎo)致,你的so是你自己編譯的還是直接copy別人的?

回答5:

這個(gè)不是有內(nèi)存溢出了啊

相關(guān)文章:
主站蜘蛛池模板: 广南县| 鹤山市| 渝中区| 德庆县| 梅州市| 枣强县| 万盛区| 吴忠市| 邵东县| 习水县| 蚌埠市| 华亭县| 诸暨市| 巴彦县| 杭锦后旗| 兴仁县| 工布江达县| 社会| 滁州市| 天镇县| 读书| 东山县| 泗阳县| 朝阳区| 定陶县| 沙雅县| 新密市| 靖江市| 响水县| 东阿县| 定西市| 永泰县| 东海县| 尤溪县| 太仆寺旗| 仙居县| 武乡县| 瑞安市| 镇安县| 林周县| 会同县|