JNI開發(fā)詳解(環(huán)境搭建,第一個(gè)小例子,Eclipse)方面,踩坑之旅

下載Ndk

由于國(guó)內(nèi)Google被強(qiáng)放钦,大家可以去這個(gè)網(wǎng)站下載AndroidDevTools根據(jù)自己需要下載

ndk下載

下載完成后解壓到一個(gè)目錄,我這里解壓到D:\ndk恭金,完整目錄D:\ndk\android-ndk-r12b這是你可以打開Eclipse-Window-Preferences,將NDK目錄添加進(jìn)去
加入NDK路徑

此處你會(huì)遇到一個(gè)問題操禀,就是 “Not a valid NDK directory”
解決辦法:在ndk的主目錄下創(chuàng)建一個(gè)ndk-build空文件(沒有擴(kuò)展名),關(guān)閉對(duì)話框再次嘗試

然后新建一個(gè)Android工程横腿,我這里名字叫HelloNDK颓屑,然后右鍵選擇 Android Tools -> Add Native Support…,然后輸入 Library Name:libxxx.so耿焊,F(xiàn)inish揪惦。
之后 Eclipse 會(huì)為我們生成 jni 目錄以及 Android.mk,xxx.cpp 兩個(gè)文件罗侯。將如下代碼復(fù)制到cpp文件

#include <jni.h>
extern "C"{
 jstring
 Java_com_example_hellondk_MainActivity_getStringFromJNI(JNIEnv* env, jobject thiz)
 {
     //返回一個(gè)字符串給Java層
     return env->NewStringUTF("第一次嘗試成功器腋,有點(diǎn)小激動(dòng)");
     // return (*env)->NewStringUTF(env, "Hello from JNI.")
 }
}

此處你會(huì)遇到兩個(gè)問題

  1. Method 'NewStringUTF' could not be resolved 問題
    解決辦法:右鍵工程 property->C/C++ General->Code Analysis—>配置當(dāng)前工程(或者workspace)->使 method cannot be resolved 不選中(即此項(xiàng)不進(jìn)行報(bào)錯(cuò) )
  2. eclipse android ndk 提示Type 'JNIEnv' could not be resolved
    解決辦法:是由于沒有將jni.h導(dǎo)入的緣故,而這個(gè)文件在ndk的目錄下面歇父。
    所以蒂培,參照以下步驟:Project Properties -> C/C++ General -> Path and Symbols
    選擇include標(biāo)簽,Add -> $Android_NDK_HOME/platforms/android-14/arch-arm/usr/include
    且選中All languages.最后Apply -> OK
    接下來編寫Activity代碼:
package com.example.hellondk;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
    
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btn = (Button) findViewById(R.id.btn);
        
        btn.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, getStringFromJNI(), Toast.LENGTH_LONG).show();
                
            }
        });
    }

    public native String getStringFromJNI();
    
    static{
        System.loadLibrary("HelloNDK");
    }
    
}

至此榜苫,你就可以運(yùn)行你的第一個(gè)NDK程序了护戳,運(yùn)行結(jié)果如下:


運(yùn)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市垂睬,隨后出現(xiàn)的幾起案子媳荒,更是在濱河造成了極大的恐慌抗悍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钳枕,死亡現(xiàn)場(chǎng)離奇詭異缴渊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鱼炒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門衔沼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昔瞧,你說我怎么就攤上這事指蚁。” “怎么了自晰?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵凝化,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我酬荞,道長(zhǎng)搓劫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任混巧,我火速辦了婚禮枪向,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咧党。我一直安慰自己遣疯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布凿傅。 她就那樣靜靜地躺著,像睡著了一般数苫。 火紅的嫁衣襯著肌膚如雪聪舒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天虐急,我揣著相機(jī)與錄音箱残,去河邊找鬼。 笑死止吁,一個(gè)胖子當(dāng)著我的面吹牛被辑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敬惦,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盼理,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了俄删?” 一聲冷哼從身側(cè)響起宏怔,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤奏路,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后臊诊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸽粉,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年抓艳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了触机。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玷或,死狀恐怖儡首,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庐椒,我是刑警寧澤椒舵,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站约谈,受9級(jí)特大地震影響笔宿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棱诱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一泼橘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迈勋,春花似錦炬灭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至厦凤,卻和暖如春鼻吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背较鼓。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工椎木, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人博烂。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓香椎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親禽篱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子畜伐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評(píng)論 25 707
  • 一、NDK產(chǎn)生的背景 Android平臺(tái)從誕生起谆级,就已經(jīng)支持C烤礁、C++開發(fā)讼积。眾所周知,Android的SDK基于J...
    Ten_Minutes閱讀 3,507評(píng)論 1 27
  • Android游戲開發(fā)實(shí)踐(1)之NDK與JNI開發(fā)02 承接上篇Android游戲開發(fā)實(shí)踐(1)之NDK與JNI...
    AlphaGL閱讀 3,754評(píng)論 0 24
  • 概述 相信網(wǎng)上有很多類似的文章脚仔,大家看到的也比較多勤众,但對(duì)于Eclipse上創(chuàng)建so,我覺得網(wǎng)上并沒有一個(gè)全面的介紹...
    tjt852閱讀 4,152評(píng)論 0 5
  • 1、現(xiàn)在的你猎醇,還有勇氣談一場(chǎng)異地戀嗎窥突? 2007年,A姑娘結(jié)束了一段異地戀硫嘶。04年阻问,她在東北讀師范,男友小武復(fù)讀一...
    沐光的樹閱讀 621評(píng)論 0 0