我找了很多資料都沒找出問題在哪,希望有前輩指點下。
環境:
工程樹:
activity_main.xml:
MainActivity:
C語言檔案C.c:
因為我剛剛學習用NDK開發遇到很多莫名其妙的問題所以我先說一下我的思路:
用C語言通過jni呼叫java本地函式完成開發.需要創建java本地函式并生成頭檔案給C呼叫,.mk檔案主要是解決編譯鏈接問題,MainActivity檔案就是android的入口檔案。我現在的問題是怎么呼叫自己建的java類來實作修改TextView中的文本。
在android中跟圖形有關的活動都是繼承于AppCompatActivity,理論上我只要在我自己定義java類中繼承AppCompatActivity并通過ID呼叫獲取對應的物件(TextView tv = findViewById(R.id.text);)然后呼叫tv.setText(getString());;方法就可以修改文本了。
也不知道這個思路是不是對的?
如果是對的我在MainActivity或者自建的javaclass 增加對應的代碼:
但是我在我自建的javaclass類中增加代碼后編譯不通過:
對應的錯誤提示:
我又在MainActivity中增加代碼:
對應的錯誤提示:
以上錯誤我去網上查到的質料都是:
這個我已經做了還是一樣
這就是我情況 請前輩們看看 我的這個是什么問題 如果還需要什么細節我可以隨時編輯補充 指點下或者告訴我什么質料能解決我的問題也可以 如果想要分可以再加 先謝過大家啦!
uj5u.com熱心網友回復:
哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
uj5u.com熱心網友回復:
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
package com.example.cs;
public class javaclass {
static {
System.loadLibrary("native-lib");
}
public native String getString();
}
這樣嗎?
uj5u.com熱心網友回復:
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
先謝謝你回復我 javaclass這里我已經改了
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
先謝謝你的回復,我在MainActivity里面要怎么寫才能修改TextView中的文本?
uj5u.com熱心網友回復:
參考 3 樓 yqy1234hf 的回復: Quote: 參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
先謝謝你回復我 javaclass這里我已經改了
參考 1 樓 不會寫代碼的猴子 的回復: 哇,同學,你這邏輯亂的可不是一星半點啊,又是java,又是kotlin的。
1.建議java和kotlin不要混合使用;
2.NDK,你要通過jni介面,呼叫C生成的so庫。Android.mk是C編譯生成so庫的規則,關于如何生成so庫,建議你在android官網好好看看。
3.Android 的activity是你要呈現出來的頁面,就是你可以看到的。而你的javaclass,是一個jni介面,不需要繼承AppCompatActivity。
介面這樣寫就行了。
先謝謝你的回復,我在MainActivity里面要怎么寫才能修改TextView中的文本?
你這是java的寫法
kotlin的寫法是
val text: TextView = findViewById(R.id.text)
uj5u.com熱心網友回復:
所以我說,如果你更懂java一些,就不要用kotlin,在new project的時候,語言選擇java
uj5u.com熱心網友回復:
參考 5 樓 不會寫代碼的猴子 的回復: 所以我說,如果你更懂java一些,就不要用kotlin,在new project的時候,語言選擇java
參考 5 樓 不會寫代碼的猴子 的回復: 所以我說,如果你更懂java一些,就不要用kotlin,在new project的時候,語言選擇java
嗯嗯 前輩我知道了 我現在還有一個問題
錯誤提示我這種寫法已經被廢棄了,這個要怎么寫。
導致這個錯誤的是android 還是 我學習的java語法已經過時了?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/205118.html
標籤:Android
上一篇:Qt 4.8中的QFileDialog的selectedFilter介面在Qt 5.9中如何實作
下一篇:TSINGSEE青犀視頻云邊端架構產品運行后加密機可以斷電斷網嗎?