❶ No value has been specified for property 'aidlExecutableProvider'
問題:
直接使用android studio導入cocos2d-x的官方測試工程,cpp-test,會報錯「No value has been specified for property 'aidlExecutableProvider'」。
修改方法:
直接網路或者谷歌,給出的原因是aidl文件名稱沖突。需要先到文舉高件夾中刪除緩存在clean就沒問題了,我本地測試頃備了N次,也關閉android studio重新打開,依然無法解決,可見我遇到的不是這個問題。再正乎尺回來看sync時候的event log。
NDK Resolution Outcome: Project settings: Gradle model version=4.6, NDK version is UNKNOWN
再重新看cocos2d-x for android的編譯環境要求,發現NDK沒有配置,配置之後重新sync就沒問題了。
❷ Android Studio 編譯過程中 報錯,
看你的飢余緩樣子應該是新建的工程吧,新手的話,建議可以直接新建一個cpp來實驗,這樣毀消許多書的代碼都可以直接爛模輸入編譯運行。
❸ Android Studio NDK開發同時編譯多個CPP文件時該如何配置
你可以整多幾個mole,每個mole一個apk,嘩碰御這樣是可以了。proctFlavors{main2{applicationId"亂岩吵戚com.amar.hello2"}main3{applicationId"ca.laplanete.mobile.example"}}
❹ android用cmake怎麼導入cpp文件夾,undifined reference to
ndroid Studio升級到2.2之後,我們可以先配置好NDK開發的一些所需工具,如圖,在SDK Tools中勾選安裝CMake、LLDB、NDK。
CMake: 外部構建工具。如果你准備只使用 ndk-build 的話,可以不使用它。
LLDB: Android Studio上面調試本地代碼的工具。
Android Studio自帶DEMO了解CMAKE
Android Studio升級到2.2版本之後,在創建新的project時,界面上多了一個Include C++ Support的選項。勾選它之後將會創建一個默認的C++與java混編的Demo程序。就讓我們先來看看這個官方標准Demo吧。
開始之前最好先下載好NDK,見NDK開發 從入門到放棄(一:基本流程入門了解),即在Project Structure界面Android NDK location處下載或選擇正確的路徑。或者使用上方提供的工具安裝方法來進行下載。否則,創建的新project也會報錯,需要配置好後clean。
File -> New -> New Project,在如下界面中勾選Include C++ Support,然後一路 Next,直到 Finish 為止即可。
項目打開後我們查看目錄結構,與常規項目不同的是多了.externalNativeBuild文件夾、cpp文件夾、CMakeLists.txt文件,如下圖:
這三個東西都是NDK部分:
1. .externalNativeBuild文件夾:cmake編譯好的文件, 顯示支持的各種硬體等信息。系統生成。
2. cpp文件夾:存放C/C++代碼文件,native-lib.cpp文件是該Demo中自帶的,可更改。需要自己編寫。
3. CMakeLists.txt文件:CMake腳本配置的文件。需要自己配置編寫。
Gradle中也有兩處不同:
java代碼:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Example of a call to a native method
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setText(stringFromJNI());
}
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI();
// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("native-lib");
}
}2223
從native-lib.cpp的代碼中我們能看到它使用的是靜態注冊的方式,動態注冊的方式代碼同傳統JNI。
#include <jni.h>
#include <string>
extern "C"
jstring
Java_com_example_person_myapplication_MainActivity_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}12345678910111234567891011
CMakeLists.txt文件中我們需要注意的是下面這三個地方。兩個library的名字(需一致)以及一個cpp文件的路徑,彼此需要對應一致,當我們自己定義library以及自己創建cpp文件時需要對應修改。
❺ 想自學安卓,應該從哪裡開始有c/cpp基礎。我想結合android studio學習。有建議嗎
目前確實建議使用studio學習,因為studio開發速度確實比納橡eclipse快很多,學習的話,入門,常用控制項,四大組件,還有很多小的基礎的改茄凳知識,進階是jni還有自定義這些,不過如果要用android studio的話建議先把這個開發軟體下了,因為核旅太大了,有c基礎肯定是好事,這樣學jni就很輕鬆了
❻ 蘋果電腦上androidstudio怎樣設置ndk
1、新建一個Android工程,這一步就不多說了;
2、在AndroidStudio中配置NDK路徑,方法是:
(1)先下載NDK並安裝(這句基本是廢話);
(2)點菜單欄的File->ProjectStructure…->在打開的窗口中左側選中SDKLocation->在右側Android NDK Location中填入NDK目錄所在路徑
3、編譯生成.class文件,方法是:
點菜單欄的Build->Make Project
這時,在工程的app/build/intermediates下就會生成classes文件夾,打開classes目錄下的debug目錄就會看到以你的包名命名的各級文件夾,最里邊文件夾下有你的Java類對應的.class文件;
4、確定你要引用本地方法的類:
其實你也可以先生成jni目錄,再去創建這個類,但是先Google顯然建議先創建要引用C代碼的Java類,因為AndroidStudio可以根據你在java類中定義的native方法的名稱來自動生成.h頭文件。
比如你想在MainActivity中引用本地方法,那麼你先用
static {
System.loadLibrary("myNativeLib");
}
來聲明本地代碼庫,然後定義幾個natvie方法,比如
public native String getStringFromNative();
5、使用javah命令行生成jni目錄及對應的頭文件:
我用的是AndroidStudio 2.1.1,在主界面最下邊就能找到Terminal,點一下就能打開系統的命令行工具,並且已經為你自動cd到當前工程所在目錄
6、配置build.gradle文件
這里的build.gradle是指app模塊下的build.gradle,不是整個工程的build.gradle文件。在模塊的build.gradle的defaultConfig下加入以下idk配置:
ndk {
moleName"myNativeLib"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
7、配置local.properties文件
打開工程目錄下的local.properties,感覺這一步是自動配置的,或者說在你一開始在AndroidStudio中指定NDK目錄時已經自動生成了。我的AndroidStudio在打開local.properties已經有了
ndk.dir=/Develop/Android/android-ndk-r10e
這一行,所以就不用配了;
8、配置gradle.properties
打開工程目錄下的gradle.properties文件(注意不是build.gradle,而是gradle.properties),在文件的最後一行加入
android.useDeprecatedNdk=true
這句的作用是允許我們使用已經過時的NDK版本,不知道AndroidStudio要求使用哪個版本的NDK才不會報錯,總之只要配置了這一句就可以使用比較舊的NDK版本了,我用的r10;
至此我們在AndroidStudio中就完成了NDK環境的配置,接下來就可以寫Native代碼了;
9、寫一個.c文件測試一下是否運行正常
(1)在我們之前生成src/main/jni目錄下新建一個.c文件,方法是在jni文件夾上點滑鼠右鍵,選擇New->C/C++ Source File,然後在彈出的對話框中填入.c或.cpp文件的文件名就可以了,比如說mail.c
❼ android studio2.2 在編譯 CPP 文件的時候
剛好並含弄了篇Android Studio2.2下配置NDK的唯旦文章:http://blog.csdn.net/shensky711/article/details/52763192,指蔽擾希望可以幫到你
❽ 如何在linux下配置AndroidStudio開發環境
1、系統環境
[android@localhost ~]$uname -a
Linux localhost.localdomain 2.6.32-71.el6.i686 #1SMP Wed Sep 1 01:26:34 EDT 2010 i686 i686 i386 GNU/Linux
[android@localhost ~]$lsb_release -a
LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.0 (Santiago)
Release: 6.0
Codename: Santiago
[android@localhost ~]$
2、准備軟體
java
eclipse
android-sdk
ADT
這些軟體都可以在官網上下載。
3、搭建過程
(1) 安裝java
[android@localhost ~]$ rpm -qa | grep java
eclipse-mylyn-java-3.3.2-4.5.el6.i686
java-1.6.0-openjdk-devel-1.6.0.0-1.21.b17.el6.i686
java-1.6.0-openjdk-1.6.0.0-1.21.b17.el6.i686
tzdata-java-2010l-1.el6.noarch
gcc-java-4.4.4-13.el6.i686
java-1.5.0-gcj-1.5.0.0-29.1.el6.i686
subversion-javahl-1.6.11-2.el6.i686
ooobasis3.3-javafilter-3.3.0-9567.i586
libvirt-java-0.4.5-2.el6.noarch
lpg-java-compat-1.1.0-4.1.el6.noarch
libvirt-java-devel-0.4.5-2.el6.noarch
mysql-connector-java-5.1.12-2.el6.i686
ant-javamail-1.7.1-13.el6.i686
java-1.6.0-openjdk-javadoc-1.6.0.0-1.21.b17.el6.i686
java_cup-0.10k-5.el6.i686
[android@localhost ~]$
通過命令查看當前已經安裝了java的相關jdk,可以進行下一步。
(2) 安裝eclipse
從官網上下載的eclipse不需要按裝,直接解壓即可使用。如:
[android@localhost Base Env]$ ls
ADT-18.0.0.zip
android-sdk_r18-linux.tgz
Android開發環境搭建(Linux篇).doc
eclipse
eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz
Linux環境搭建.doc
Linux 下Android 開發環境搭建 .doc
[android@localhost Base Env]$ rm -R eclipse
[android@localhost Base Env]$ ls
ADT-18.0.0.zip
android-sdk_r18-linux.tgz
Android開發環境搭建(Linux篇).doc
eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz
Linux環境搭建.doc
Linux 下Android 開發環境搭建 .doc
[android@localhost Base Env]$tar -zxfeclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz
[android@localhost Base Env]$ls
ADT-18.0.0.zip
android-sdk_r18-linux.tgz
Android開發環境搭建(Linux篇).doc
eclipse
eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz
Linux環境搭建.doc
Linux 下Android 開發環境搭建 .doc
[android@localhost Base Env]$cd eclipse
[android@localhost eclipse]$ls
about_files configuration eclipse.ini icon.xpm p2
about.html dropins epl-v10.html libcairo-swt.so plugins
artifacts.xml eclipse features notice.html readme
[android@localhost eclipse]$ll
總用量 540
drwxrwxr-x. 2 android android 4096 2月 17 03:06 about_files
-rw-rw-r--. 1 android android 18909 2月 8 21:55 about.html
-rw-rw-r--. 1 android android 88246 2月 17 03:06 artifacts.xml
drwxrwxr-x. 5 android android 4096 2月 17 03:06 configuration
drwxrwxr-x. 2 android android 4096 2月 17 03:06 dropins
-rwxr-xr-x. 1 android android 62814 2月 8 22:16 eclipse
-rw-rw-r--. 1 android android 407 2月 17 03:06 eclipse.ini
-rw-rw-r--. 1 android android 6 2月 8 21:36 epl-v10.html
drwxrwxr-x. 46 android android 4096 2月 17 03:06 features
-rw-rw-r--. 1 android android 9022 2月 8 21:54 icon.xpm
-rwxr-xr-x. 1 android android 266168 2月 8 21:54 libcairo-swt.so
-rw-rw-r--. 1 android android 8951 2月 8 21:36 notice.html
drwxrwxr-x. 5 android android 4096 2月 17 03:05 p2
drwxrwxr-x. 10 android android 36864 2月 17 03:06 plugins
drwxrwxr-x. 2 android android 4096 2月 17 03:06 readme
[android@localhost eclipse]$./eclipse
啟動eclipse之後,eclipse會自動創建並尋找workspace文件夾,可以直接點擊ok按鈕即可。eclipse的啟動過程如下圖所示:
❾ 怎樣在Android Studio裡面調試native代碼
https://stackoverflow.com/questions/48829644/how-to-avoid-stripping-native-library-packaged-in-an-aar-for-debug-build-type-on
然後File -> Open打開對應的c/cpp文件,打上斷首灶點,就姿昌可跡芹扒以debug了 :)
❿ hello from c++ android studio 哪裡
The Android Native Development Kit (NDK): 讓你能在 Android 上面使用 C 和 C++ 代碼的工具集。
CMake: 外部構建工具。如果你准備只使用 ndk-build 的話,可以不使用它。
LLDB: Android Studio 上面調試本地代碼的工具。
你可以使用 SDK Manager 來安裝上述組件坦悶:
打開一個項目,從菜單欄中選擇 Tools > Android > SDK Manager。
點擊 SDK Tools 選項卡。
勾選 LLDB,CMake 和 NDK。
點擊 Apply,然後點擊 OK。
當安裝完成後,點擊 Finish,然後點擊 OK。
創建支持 C/C++ 的新項目
創建一個支持 native code 的項目和創建普通讓罩彎的 Android studio 工程很像。但是有幾點需要留意的地方:
在 Configure your new project 選項中,勾選 Include C++ Support 選項。
點擊 Next,後面的流程和創建普通的 Android studio 工程一樣。
在 Customize C++ Support 選項卡中。你有下面幾種方式來自定義你的項目:
C++ Standard:點擊下拉框,可以選擇標准 C++,或者選擇默認 CMake 設置的 Toolchain Default 選項。
Exceptions Support:如果你想使用有關 C++ 異常處理的支持,就勾選它。勾選之後,Android Studio 會在 mole 層的 build.gradle 文件中的 cppFlags 中添加 -fexcetions 標志。
Runtime Type Information Support:如果你想支持 RTTI,那麼就勾選它。勾選之後,Android Studio 會在 mole 層的 build.gradle 文件中的 cppFlags 中添加 -frtti 標志。
點擊 「Finish」。
當 Android Studio 完成新項目創建後,打開 Project 面板,選擇 Android 視圖。Android Studio 會添加 cpp 和 External Build Files 目錄。
cpp 目錄存放你所有 native code 的地方,包括源碼,頭文件,預編譯項目等。對於新項目,Android Studio 創建了一個 C++ 模板文件:native-lib.cpp,並且將該文件放到了你的 app 模塊的 src/main/cpp/ 目錄下。這份模板代碼提供了一個簡答的 C++ 函數:stringFromJNI(),該函數返回一個字元串:」Hello from C++」。
External Build Files 目錄是存放 CMake 或 ndk-build 構建腳本的地方。有點類悶拆似於 build.gradle 文件告訴 Gradle 如何編譯你的 APP 一樣,CMake 和 ndk-build 也需要一個腳本來告知如何編譯你的 native library。對於一個新的項目,Android Studio 創建了一個 CMake 腳本:CMakeLists.txt,並且將其放到了你的 mole 的根目錄下。
編譯運行示例 APP
當你點擊 Run 按鈕,Android Studio 會編譯並啟動一個 APP ,然後在 APP 中顯示一段文字」Hello from C++」。從編譯到運行示例 APP 的流程簡單歸納如下:
Gradle 調用外部構建腳本,也就是 CMakeLists.txt。
CMake 會根據構建腳本的指令去編譯一個 C++ 源文件,也就是 native-lib.cpp,並將編譯後的產物扔進共享對象庫中,並將其命名為 libnative-lib.so,然後 Gradle 將其打包到 APK 中。
在運行期間,APP 的 MainActivity 會調用 System.loadLibrary() 方法,載入 native library。而這個庫的原生函數,stringFromJNI(),就可以為 APP 所用了。
MainActivity.onCreate() 方法會調用 stringFromJNI(),然後返回 「Hello from C++」,並更新 TextView 的顯示。